Android:AysncTask非同步載入

來源:互聯網
上載者:User

標籤:

以下是連結:

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         @Override105         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     <ImageView16         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>

Android:AysncTask非同步載入

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.