Android:AysncTask异步加载

以下是链接:

http://blog.csdn.net/abc5382334/article/details/17097633

http://keeponmoving.iteye.com/blog/1515611

http://www.cnblogs.com/suinuaner/archive/2013/04/11/android_fifty.html

http://blog.csdn.net/lanjianhun/article/details/8675299

http://blog.csdn.net/alex0203/article/details/7646973

http://www.cnphp6.com/archives/58164

http://blog.csdn.net/weihan1314/article/details/8045993

 

转:

 

  1 package com.wyl.myasyctask;
  2 
  3 import java.io.InputStream;
  4 
  5 import android.app.Activity;
  6 import android.app.ProgressDialog;
  7 import android.content.Context;
  8 import android.graphics.Bitmap;
  9 import android.graphics.BitmapFactory;
 10 import android.os.AsyncTask;
 11 import android.os.Bundle;
 12 import android.util.Log;
 13 import android.view.View;
 14 import android.widget.Button;
 15 import android.widget.ImageView;
 16 
 17 public class MainActivity extends Activity {
 18     private static final String sImageUrl = "http://fashion.qqread.com/ArtImage/20110225/0083_13.jpg";
 19     private Button mLoadButton;
 20     private ImageView mImageView;
 21 
 22     @Override
 23     protected void onCreate(Bundle savedInstanceState) {
 24         super.onCreate(savedInstanceState);
 25         setContentView(R.layout.main);
 26 
 27         Log.i("UI thread", " >> onCreate()");
 28 
 29         mImageView = (ImageView) this.findViewById(R.id.ImageVivew);
 30 
 31         mLoadButton = (Button) this.findViewById(R.id.LoadButton);
 32         mLoadButton.setOnClickListener(new View.OnClickListener() {
 33             @Override
 34             public void onClick(View v) {
 35                 LoadImageTask task = new LoadImageTask(v.getContext());
 36                 task.execute(sImageUrl);// 源码中得知,会调用onPreExecute()...方法
 37             }
 38         });
 39 
 40     }
 41 
 42     class LoadImageTask extends AsyncTask<String, Integer, Bitmap> {
 43         private ProgressDialog mProgressBar;
 44 
 45         LoadImageTask(Context context) {
 46             mProgressBar = new ProgressDialog(context);
 47             mProgressBar.setCancelable(true);
 48             mProgressBar.setMessage("setMessage()...");
 49             mProgressBar.setProgressStyle(ProgressDialog.STYLE_SPINNER);
 50             mProgressBar.setMax(100);
 51         }
 52 
 53         @Override
 54         protected Bitmap doInBackground(String... params) {
 55             System.out.println("doInBackground()...");
 56 
 57             Bitmap bitmap = null;
 58 
 59             try {
 60                 publishProgress(10);
 61                 Thread.sleep(1000);
 62 
 63                 InputStream in = new java.net.URL(sImageUrl).openStream();
 64                 publishProgress(60);
 65                 Thread.sleep(1000);
 66 
 67                 bitmap = BitmapFactory.decodeStream(in);
 68                 in.close();
 69             } catch (Exception e) {
 70                 e.printStackTrace();
 71             }
 72 
 73             publishProgress(100);
 74             return bitmap;
 75         }
 76 
 77         @Override
 78         protected void onCancelled() {
 79             super.onCancelled();
 80         }
 81 
 82         @Override
 83         protected void onPreExecute() {
 84 
 85             mProgressBar.setProgress(0);
 86             mProgressBar.setMessage("Image downloading ... 0%");
 87             mProgressBar.show();
 88             System.out.println("onPreExecute()...");
 89         }
 90 
 91         @Override
 92         protected void onPostExecute(Bitmap result) {
 93             System.out.println("onPostExecute()...");
 94             if (result != null) {
 95                 mProgressBar.setMessage("Image downloading success!");
 96                 mImageView.setImageBitmap(result);
 97             } else {
 98                 mProgressBar.setMessage("Image downloading failure!");
 99             }
100 
101             mProgressBar.dismiss();
102         }
103 
104         @Override
105         protected void onProgressUpdate(Integer... values) {
106             System.out.println("onProgressUpdate()...");
107             mProgressBar.setMessage("Image downloading ... %" + values[0]);
108             mProgressBar.setProgress(values[0]);
109         }
110     }
111 
112 }

 

 

main.xml:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:id="@+id/AbsoluteLayout01"
 4     android:layout_width="fill_parent"
 5     android:layout_height="fill_parent"
 6     android:orientation="vertical" >
 7 
 8     <Button
 9         android:id="@+id/LoadButton"
10         android:layout_width="fill_parent"
11         android:layout_height="wrap_content"
12         android:text="Load">
13     </Button>
14  
15     <ImageView
16         android:id="@+id/ImageVivew"
17         android:layout_width="match_parent"
18         android:layout_height="400dip"
19         android:scaleType="centerInside"
20         android:padding="2dp">
21     </ImageView>
22 
23 </LinearLayout>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值