活动显示从互联网加载的位图,当我滑动ImageView时,会发生另一个位图。我将位图设置为ImageView,在回收后,有时会发生错误。 代码:
mImageView.setImageBitmap(loadedBitmap);
if(loadedBitmap!=null && !loadedBitmap.isRecycled()){
loadedBitmap.recycle();
loadedBitmap=null;
}
它运行多线程,我不能把Bitmpa的操作放在setImageBitmap之前。 我该怎么办?
答案 0 :(得分:0)
您可以编写多线程应用程序,但可以从主线程执行所有UI更新。
答案 1 :(得分:0)
基本上,您无法回收当前在ImageView中使用的位图。 如果你想在ImageView中交换位图,那么我会这样做:
我会保留对Bitmap的引用(例如mLoadedBitmap),当你下载另一个时,你会做这样的事情:
final Bitmap oldBitmap = mLoadedBitmap;
mLoadedBitmap = downloadedBitmap;
mImageView.setImageBitmap(mLoadedBitmap);
if(oldBitmap!=null && !oldBitmap.isRecycled()){
oldBitmap.recycle();
}