首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android 异步更新UI-AsyncTask

2013-09-14 
Android 异步更新UI----AsyncTask在前一章 package com.example.threadimport org.apache.http.HttpRespo

Android 异步更新UI----AsyncTask

在前一章 

package com.example.thread;import org.apache.http.HttpResponse;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import com.example.test.R;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.AsyncTask;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageView;import android.widget.ProgressBar;import android.widget.Toast;public class AsyncTaskActivity extends Activity{private ImageView mImageView; private Button mButton; private ProgressBar mProgressBar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main12);mImageView = (ImageView)findViewById(R.id.imageView);mButton = (Button)findViewById(R.id.button);mProgressBar = (ProgressBar) findViewById(R.id.progressBar);mButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {new MyAsyncTask().execute("http://csdnimg.cn/www/images/csdnindex_logo.gif");}});}class MyAsyncTask extends AsyncTask<String, Integer, Bitmap>{@Overrideprotected Bitmap doInBackground(String... params) {publishProgress(0);//将会调用onProgressUpdate(Integer... progress)方法HttpClient hc = new DefaultHttpClient();publishProgress(30);HttpGet hg = new HttpGet(params[0]);final Bitmap bm;try {HttpResponse hr = hc.execute(hg);bm = BitmapFactory.decodeStream(hr.getEntity().getContent());} catch (Exception e) {return null;}publishProgress(100);return bm;}@Overrideprotected void onProgressUpdate(Integer... values) {mProgressBar.setProgress(values[0]);}@Overrideprotected void onPostExecute(Bitmap result) {if (result != null) {Toast.makeText(AsyncTaskActivity.this, "成功获取图片", Toast.LENGTH_LONG).show(); mImageView.setImageBitmap(result); }else { Toast.makeText(AsyncTaskActivity.this, "获取图片失败", Toast.LENGTH_LONG).show(); }}@Overrideprotected void onPreExecute() {mImageView.setImageBitmap(null);mProgressBar.setProgress(0);super.onPreExecute();}@Overrideprotected void onCancelled() {super.onCancelled();mProgressBar.setProgress(0);}} }

热点排行