AsyncTask异步加载图片示例
来源:互联网 发布:淘宝开直通车有用吗 编辑:程序博客网 时间:2024/06/05 08:26
AsyncTask异步加载图片示例
更多asynctask代码请访问http://search.eoeandroid.com/f/discuz?mod=forum&formhash=ecf12ea5&srchtype=title&srhfid=93&srhlocality=forum%3A%3Aviewthread&sId=7379687&ts=1382436013&cuId=958550&cuName=hotmail589&gId=28&agId=3&egIds=28&fmSign=&ugSign28=&ugSign3=&ext_ffids=&sign=560887f957b806fd1afc89b5ab4863d7&charset=utf-8&source=discuz&fId=0&q=asynctask&srchtxt=asynctask&searchsubmit=true01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
package
com.example.stoneasynctask;
import
java.io.IOException;
import
org.apache.http.HttpEntity;
import
org.apache.http.HttpResponse;
import
org.apache.http.client.ClientProtocolException;
import
org.apache.http.client.HttpClient;
import
org.apache.http.client.methods.HttpGet;
import
org.apache.http.impl.client.DefaultHttpClient;
import
org.apache.http.util.EntityUtils;
import
android.os.AsyncTask;
import
android.os.Bundle;
import
android.app.Activity;
import
android.app.ProgressDialog;
import
android.graphics.Bitmap;
import
android.graphics.BitmapFactory;
import
android.view.Menu;
import
android.view.View;
import
android.widget.Button;
import
android.widget.ImageView;
public
class
MainActivity
extends
Activity {
public
Button button;
public
ImageView imageView;
public
ProgressDialog progressDialog;
public
String image_path =
"http://www.eoeandroid.com/static/image/common/eoe_logo.png"
;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button)
this
.findViewById(R.id.button1);
imageView = (ImageView)
this
.findViewById(R.id.imageView1);
progressDialog =
new
ProgressDialog(MainActivity.
this
);
progressDialog.setTitle(
"提示信息"
);
progressDialog.setMessage(
"正在下载图片,请稍后"
);
button.setOnClickListener(
new
View.OnClickListener() {
@Override
public
void
onClick(View v) {
// 执行异步任务下载图片
new
Mytask().execute(image_path);
}
});
}
@Override
public
boolean
onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return
true
;
}
// 需要先继承AsyncTask接口,第一个参数是执行路径,第二个是进度,第三个是返回值
public
class
Mytask
extends
AsyncTask<String, Void, Bitmap> {
// 可以在这里执行耗时操作
protected
Bitmap doInBackground(String... params) {
// 实例化网络客户端对象
HttpClient httpClient =
new
DefaultHttpClient();
// 实例化请求对象,并且取出参数列表中的参数
HttpGet httpGet =
new
HttpGet(params[
0
]);
Bitmap bitmap =
null
;
try
{
// 发送请求
HttpResponse httpResponse = httpClient.execute(httpGet);
// 判断返回状态,并接收图片
if
(httpResponse.getStatusLine().getStatusCode() ==
200
) {
HttpEntity httpEntity = httpResponse.getEntity();
byte
[] data = EntityUtils.toByteArray(httpEntity);
bitmap = BitmapFactory
.decodeByteArray(data,
0
, data.length);
}
}
catch
(ClientProtocolException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
catch
(IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
return
bitmap;
}
// 表示任务执行之前的操作
protected
void
onPreExecute() {
// TODO 自动生成的方法存根
super
.onPreExecute();
// 下载之前显示弹出框然后下载图片,下载完会结束弹出框
progressDialog.show();
}
@Override
// 在这个方法里进行更新UI操作
protected
void
onPostExecute(Bitmap result) {
// TODO 自动生成的方法存根
super
.onPostExecute(result);
// 给图片控件设置下载的图片
imageView.setImageBitmap(result);
// 隐藏弹出框
progressDialog.dismiss();
}
}
}
0 0
- AsyncTask异步加载图片示例
- 异步加载图片AsyncTask
- AsyncTask异步加载图片
- AsyncTask异步加载图片
- Android 异步加载图片-AsyncTask
- Android 异步加载图片-AsyncTask
- 使用AsyncTask异步加载图片
- 采用AsyncTask异步加载网络图片
- AsyncTask 异步加载网络图片简单应用
- Android中的AsyncTask异步加载图片
- AsyncTask用法和异步加载图片
- 安卓AsyncTask异步加载图片
- Android有效加载图片 之 使用AsyncTask异步加载图片
- AsyncTask 网络加载图片及进度条的加载示例
- iOS 异步加载图片简单示例
- Android AsyncTask异步加载
- AsyncTask异步加载
- AsyncTask异步加载
- s:if的用法
- webrtc中BEGIN_PROXY_MAP代码功能介绍
- C语言sin和cos函数的实现
- Java 日期时间 Date类型,long类型,String类型表现形式的转换
- 防火墙负载均衡解决方案
- AsyncTask异步加载图片示例
- HDU 4502 吉哥系列故事——临时工计划(动态规划)
- 无法定位程序输入点……于动态链接库KERNEL32.dll上
- Scala 中的 apply 和 update 方法
- call_user_func和call_user_func_array的用法详解
- Phaser游戏框架 鼠标mouse事件以及触摸touch事件
- mysql插入int字段可以使用单引号包含?今天改东西无意发现时间字段成int类型了,而且update这个字段用单引号包含,于是在MySQL上测试下能运行,求解
- 网络棋牌游戏创造快乐心情
- 腾讯,百度,阿里的面试经验