AsyncTask 异步任务下载网络图片
2016-08-30 22:02
501 查看
package com.qf.day07_asynctask_03; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.app.ProgressDialog; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.ImageView; import android.widget.Toast; public class MainActivity extends Activity { private ImageView iv01,iv02; private String urlStr01 = "http://www.818dxs.com/uploads/allimg/160430/1-160430154611959.png"; private String urlStr02 = "http://upload.cbg.cn/2015/1126/1448506973451.jpg"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); iv01 =(ImageView) findViewById(R.id.iv01); iv02 = (ImageView) findViewById(R.id.iv02); } public void downLoad(View v) { //启动异步任务, 下载图片 new MyTask().execute(urlStr01,urlStr02); } public class MyTask extends AsyncTask<String, Void, List<Bitmap>> { private ProgressDialog pDialog; @Override protected void onPreExecute() { // TODO 初始化进度条对话框 super.onPreExecute(); pDialog = new ProgressDialog(MainActivity.this); pDialog.setIcon(R.drawable.ic_launcher); pDialog.setTitle("提示"); pDialog.setMessage("正在加载,请稍后..."); pDialog.setCancelable(false); pDialog.show(); } @Override protected List<Bitmap> doInBackground(String... params) { // TODO 执行耗时的操作 List<Bitmap> data = new ArrayList<Bitmap>(); try { for(int i=0;i<params.length;i++) { URL url = new URL(params[i]); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.connect(); if(conn.getResponseCode() == 200) { InputStream is = conn.getInputStream(); Bitmap bitmap = BitmapFactory.decodeStream(is); data.add(bitmap); } } } catch (Exception e) { // TODO: handle exception } return data; } @Override protected void onPostExecute(List<Bitmap> result) { // TODO 对话框消失, 更新UI super.onPostExecute(result); pDialog.dismiss(); if(result!=null && result.size()>0) { Log.i("info", "--"+result.size()); iv01.setImageBitmap(result.get(0)); iv02.setImageBitmap(result.get(1)); } else { Toast.makeText(MainActivity.this, "加载失败", Toast.LENGTH_LONG).show(); } } } } }
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="下载图片" android:id="@+id/button" android:onClick="download" android:layout_centerHorizontal="true" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/iv1" android:layout_below="@+id/button" android:layout_centerHorizontal="true" android:src="@drawable/ic_launcher" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/iv2" android:layout_below="@+id/iv1" android:layout_centerHorizontal="true" android:src="@drawable/ic_launcher" /> </RelativeLayout>
记得在清单文件中 加入访问网络的权限
相关文章推荐
- Android之AsyncTask异步任务下载网络图片
- AsyncTask --异步任务+简单的网络图片下载
- 安卓多线程编程系列1:异步任务的使用之使用异步任务圆圈滚动条下载网络图片
- 异步处理任务工具类(AsyncTask)实现多张图片的下载(已知url)
- Android 异步任务——AsyncTask (附使用AsyncTask下载图片Demo)
- AsyncTask异步任务学习笔记(一、异步任务加载网络图片(多图))
- 异步任务下载网络图片
- AsyncTask 异步任务下载文字or图片
- Android带进度条的下载图片示例(AsyncTask异步任务)
- Android异步任务AsyncTask使用解析 获取网络图片
- android:异步任务asyncTask介绍及异步任务下载图片(带进度条)
- 使用异步任务-AsyncTask下载远程图片
- 安卓多线程编程系列2:异步任务的使用之使用异步任务带有进度的横向滚动条下载网络图片
- android:异步任务asyncTask介绍及异步任务下载图片(带进度条)
- Android异步下载网络图片(其二:AsyncTask)
- Android异步下载网络图片(其二AsyncTask)
- Android异步下载网络图片(其二:AsyncTask)
- 使用异步任务加载网络上的图片
- Android异步下载网络图片(其三)
- Android中AsyncTask的简单用法及实现网络图片下载的实例