(Andr 4000 oid学习)ImageView设置异步加载的网络图片
2015-01-12 17:02
239 查看
只有在创建了View树的原始线程(一般为主线程)中才能操作树中的view。
AsyncTask的解决:
新建类, extends AsyncTask<String,Void, Bitmap>
// AsyncTask实现类中对ImageView的弱引用
private final WeakReference<ImageView> imageViewReference;
//
构造方法中实例化WeakReference对象
imageViewReference = new WeakReference<ImageView>(imageView);
//
通过弱引用对构造方法中传入的ImageView实例进行操作
@Override
protected void onPostExecute(Bitmap bitmap) {
if (imageViewReference != null && bitmap != null) {
final ImageView imageView = imageViewReference.get();
if (imageView != null) {
imageView.setImageBitmap(bitmap);
}
}
}
2、 Handler解决:
*实例化一个Handler对象:
Handler handler = new Handler() {
super.handleMessage(msg);
if(msg.what == SUCCESS) { //SUCCESS为int常量,值为0
imageView.setImageBitmap((Bitmap)msg.obj);
}
};
*子线程中发送message:
run() {
Bitmap bitmap = getImageFromNet(url); // 得到bitmap实例
Message msg = new Message();
msg.what = SUCCESS; // SUCCESS为int常量,值为0
msg.obj = bitmap;
handler.sendMessage(msg);
}
只有在创建了View树的原始线程(一般为主线程)中才能操作树中的view。
AsyncTask的解决:
新建类, extends AsyncTask<String,Void, Bitmap>
// AsyncTask实现类中对ImageView的弱引用
private final WeakReference<ImageView> imageViewReference;
//
构造方法中实例化WeakReference对象
imageViewReference = new WeakReference<ImageView>(imageView);
//
通过弱引用对构造方法中传入的ImageView实例进行操作
@Override
protected void onPostExecute(Bitmap bitmap) {
if (imageViewReference != null && bitmap != null) {
final ImageView imageView = imageViewReference.get();
if (imageView != null) {
imageView.setImageBitmap(bitmap);
}
}
}
2、 Handler解决:
*实例化一个Handler对象:
Handler handler = new Handler() {
super.handleMessage(msg);
if(msg.what == SUCCESS) { //SUCCESS为int常量,值为0
imageView.setImageBitmap((Bitmap)msg.obj);
}
};
*子线程中发送message:
run() {
Bitmap bitmap = getImageFromNet(url); // 得到bitmap实例
Message msg = new Message();
msg.what = SUCCESS; // SUCCESS为int常量,值为0
msg.obj = bitmap;
handler.sendMessage(msg);
}
相关文章推荐
- 在android中使用ImageLoder加载网络图片时,将图片设置为ImageView的背景
- ImageView异步加载网络图片
- iOS_第3方类库_EGOImageView异步加载网络图片
- Android开发中ImageLoder加载网络图片时将图片设置为ImageView背景的方法
- android ImageView网络图片加载、动态设置尺寸、圆角..
- Android 异步加载网络图片到ImageView (Hnadler)
- iOS网络编程(三) 异步加载及缓存图片---->SDWebImage
- android ImageView关于网络加载图片圆形处理
- 异步加载图片显示到ImageView控件上
- iOS网络编程(三) 异步加载及缓存图片---->SDWebImage
- android使用ImageView加载本地SdCard图片和加载网络图片
- 自定义一个简单的可以加载网络图片的ImageView
- SDWebImage——一个可管理远程图片加载的类库,异步加载图片设置图片大小,添加图片缓存
- MainActivity 会异步加载图片到相应的ImageView上
- UIImageView异步加载网络图片
- Android - 小功能 使用ImageView加载本地SdCard图片和加载网络图片
- ListView GridView ViewPager 异步 加载网络图片 缓存到本地
- ImageView简单加载网络图片
- android使用ImageView加载本地SdCard图片和加载网络图片
- UIImageView加载网络图片,NSOperationQueue来异步加载图片