跟新UI第一種方式android
MainActivity類
api
代碼ide
public class MainActivity extends Activity {post
//下載圖片的地址URLthis
private String url = "http://litchiapi.jstv.com/Attachs/Top/11949/e650e0201de541d2ba91dca202b0fcfe.jpg";url
private ImageView imageview;spa
private ProgressDialog progressDialog;線程
//更新UI 主線程code
Handler handler = new Handler() {圖片
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case 1:
progressDialog.show();
break;
case 2:
imageview.setImageBitmap((Bitmap)msg.obj);
break;
case 3:
//關閉下載進度條
progressDialog.dismiss();
break;
}
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.imageview = (ImageView) this.findViewById(R.id.imageview);
// 下載加載進度條
progressDialog = new ProgressDialog(this);
progressDialog.setTitle("提示");
progressDialog.setIcon(R.drawable.ic_launcher);
progressDialog.setMessage("正在下載...");
//下載圖片方法1
// 子線程
new Thread(new Runnable() {
@Override
public void run() {
// 顯示下載進度條
handler.sendEmptyMessage(1);//發送一個空消息
try {
Thread.sleep(1000);//休眠時間長點 保證下載進度條顯示才下載圖片
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 下載圖片
byte[] img_data = downimag();
Bitmap bitmap = BitmapFactory.decodeByteArray(img_data, 0,
img_data.length);
Message message = Message.obtain();
message.what = 2;
message.obj = bitmap;
//圖片數據下載完成消息
handler.sendMessage(message);
//關閉下載進度條消息
handler.sendEmptyMessage(3);
}
}).start();
}
private byte[] downimag() {
HttpGet get = new HttpGet(url);
HttpClient client = new DefaultHttpClient();
HttpResponse response;
try {
response = client.execute(get);
if (response.getStatusLine().getStatusCode() == 200) {
return EntityUtils.toByteArray(response.getEntity());
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
===================================
跟新UI第二種方式
MainActivity類
代碼
public class MainActivity extends Activity {
private String url = "http://litchiapi.jstv.com/Attachs/Top/11949/e650e0201de541d2ba91dca202b0fcfe.jpg";
private ImageView imageview;
private Handler handler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.imageview = (ImageView) this.findViewById(R.id.imageview);
//開啓子線程
new Thread (new Runnable() {
@Override
public void run() {
// 下載圖片
byte[] img_data = downimag();
final Bitmap bitmap = BitmapFactory.decodeByteArray(img_data, 0,
img_data.length);
//更新UI第二種方法
//使用handle.post方法
handler.post(new Runnable() {
@Override
public void run() {
//在這裏更新UI-- 主線程
imageview.setImageBitmap(bitmap);
}
});
}
}).start();
}
private byte[] downimag() {
HttpGet get = new HttpGet(url);
HttpClient client = new DefaultHttpClient();
HttpResponse response;
try {
response = client.execute(get);
if (response.getStatusLine().getStatusCode() == 200) {
return EntityUtils.toByteArray(response.getEntity());
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}