AsyncTask 异步处理:

mainfest:

注意添加的:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" /> <application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Main2Activity"></activity>
</application>

代码 :MainActivity.java

package com.example.wgscd.myapplication;

import android.graphics.BitmapFactory;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.ImageView;

import android.widget.ProgressBar;

import android.widget.TextView;

import android.graphics.Bitmap;

import android.os.AsyncTask;

import java.io.InputStream;

import java.net.HttpURLConnection;

import java.net.URL;

import static android.R.attr.bitmap;

public class MainActivity extends AppCompatActivity {

Button btn1=null;

TextView txtView1=null;

ProgressBar progressBar;

int j=1;

String msg="";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

btn1=(Button) findViewById(R.id.btn1);

txtView1=(TextView)findViewById(R.id.textView1);

progressBar = (ProgressBar)findViewById(R.id.progressBar);

progressBar.setVisibility(View.INVISIBLE);

}

protected void btn1_Click(View view){
// txtView1.setText( j +"");
// j++;
downLoadPictue(); } void downLoadPictue(){
DownImageTask asyncTask = new DownImageTask();
asyncTask.execute("http://www.xitongzijia.net/meinv/e/data/tmp/titlepic/pic43847d162a1452bfeb482be70d24bff9e5c99_200.jpg");
} class DownImageTask extends AsyncTask<String, Integer, Bitmap> {
// 执行预处理
@Override
protected void onPreExecute() {
super.onPreExecute();
// 显示进度条
progressBar.setVisibility(View.VISIBLE);
progressBar.setMax(100); }
// 后台进程的执行
@Override
protected Bitmap doInBackground(String... params) { Bitmap bitmap=null;
try {
URL url = new URL(params[0]);
HttpURLConnection conn = (HttpURLConnection) url
.openConnection();
// 进度条的更新,我这边只是用一个循环来示范,在实际应用中要使用已下载文件的大小和文件总大小的比例来更新
for (int i = 1; i <= 10; i++) {
publishProgress(i * 10);
Thread.sleep(200);
}
InputStream inputStream = conn.getInputStream();
bitmap = BitmapFactory.decodeStream(inputStream);
inputStream.close(); } catch (Exception e) {
e.printStackTrace();
msg= e.getMessage();
}
return bitmap;
}
// 运行于UI线程,对后台任务的结果做出处理,doInBackground方法执行的结果作为此方法的参数
@Override
protected void onPostExecute(Bitmap result) {
super.onPostExecute(result);
ImageView imageView = (ImageView) findViewById(R.id.imageView);
imageView.setImageBitmap(result);
progressBar.setVisibility(View.GONE); }
// 运行于UI线程,如果在doInBackground(Params...)中使用了publishProgress(Progress...),就会触发此方法
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
txtView1.setText( ""+ values[0] +"%" + msg);
progressBar.setProgress(values[0]); }
}

}

Android初学-AsyncTask下载网络图片的更多相关文章

  1. Android 用AsyncTask下载网络图片并显示百分比

    1.添加布局文件:activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/a ...

  2. Android测试AsyncTask下载图片

    package com.example.myact8_async; import org.apache.http.HttpEntity; import org.apache.http.HttpResp ...

  3. android 多线程 AsyncTask 下载图片

    AsyncTask 下载图片 package com.test.network; import android.graphics.Bitmap; import android.graphics.Bit ...

  4. AsyncTask下载网络图片的简单应用

    1.imageTest package lpc.com.asynctaskdemo; import android.app.Activity; import android.graphics.Bitm ...

  5. Android 使用AsyncTask 下载图片的例子,学会使用AsyncTask

    1.添加布局文件:activity_main.xml 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res ...

  6. Android开发学习—— 下载网络图片

    现在几乎所有的应用都在使用网络来达到浏览的目的.对于特定领域 使用xnpp协议 像即时通讯软件.但大多数还是使用HTTP协议来交互. 网络图片查看器 HTTP协议 下载网络 图片 <Relati ...

  7. AsyncTask下载网络图片

    MyTask task = new MyTask(); task.execute(url); class MyTask extends AsyncTask<String, Integer, Bi ...

  8. Android 下载网络图片保存到本地

    通过网络地址获取网络图片,点击下载将图片显示出来,然后点击图片将图片保存到本地. 首先需要在manifest上添加一些权限: <!-- 访问网络的权限 --> <uses-permi ...

  9. Android开发-下载网络图片并显示到本地

    Android下载网络图片的流程是: 发送网络请求->将图片以流的形式下载下来->将流转换为Bitmap并赋给ImageView控件. 注意点 最新的Android系统不可以在主线程上请求 ...

随机推荐

  1. 读写appSettings配置节方法

    <configuration>   <appSettings>     <add key="Socket_Path_MW_data" value=&q ...

  2. Oracle EBS AP 已经完全付款的发票仍然可以选择并进行零金额的付款

    1>找出相应的发票; SELECT DISTINCT ai.invoice_id, ai.invoice_num invoice_num, pv.segment1 vendor_num, pv. ...

  3. Oracle EBS 请求

    SELECT t.responsibility_id, t.responsibility_key, t.responsibility_name, t.description, t.menu_id, f ...

  4. android 常用adb 及linux 命令

    一.ADB相关 adb shell:进入连接的USB调试模式设备shell命令行下 adb tcpip 5555:将USB连接的调试及的连接方式改为网络远程模式进行调试 这里端口为5555(adb 默 ...

  5. 使用ModelForm表单验证

    1.定义model.py model中定义的字段类型,只有在通过form进行验证的时候才有效,数据库中的字段类型与其并不完全一致,如数据库中并没有ipaddress类型.如果不通过form对字段进行验 ...

  6. Office 365实现单点登录系列(2)—Azure AD Connect安装与配置

    前言 第一篇文章我已经为大家分享了在在Azure上搭建域控服务器的方法,如果大家本地已经有了域环境,可以直接从这一篇文章开始阅读.Azure AD Connect的前身是DirSync,是专门用于目录 ...

  7. 结合领域驱动设计的SOA分布式软件架构

    引言 本文主要是参考Martion Fowler所著的<企业应用架构模式>与Eric Evans所著的<领域驱动设计>这两本泰山之作,加上本人在近年实际的工作过程中开发SOA系 ...

  8. 2018.08.30 21:12 第一个Django程序完成

    from django.http import HttpResponse def hello(request): return HttpResponse("Hello world ! &qu ...

  9. ORACLE数据库入门再在屋里坐会

    一.数据库简介 数据库概述 数据库(database)是按照数据结构来组织,存储和管理数据的仓库,它产生与距今五十年前. 简单来说是本身可视为电子化的文件柜--存储电子文件的处所,用户可以对文件中的数 ...

  10. HBase Master高可用(HA)

    HMaster没有单点问题,HBase中可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master运行. 所以这里要配置HBase高可用的话,只需要 ...