我正在制作一个Image加载器,用于将图像加载到列表中 - 所以为了使它平滑,除了将图像设置为视图外,所有内容都需要在后台线程中运行.问题是代码中的Runnable有时不会被执行.我从后台线程调用setImage方法.
protected void setImage(final ImageView img, final Bitmap bm, String hash) {
img.setTag(TAG_RESPONSE, hash);
Log.v(TAG, "setting image bitmap1");
//TODO: here is the bug - sometimes the runnable below is not called
img.post(new Runnable() {
@Override
public void run() {
Log.v(TAG, "setting image bitmap2");
img.setImageBitmap(bm);
img.invalidate();
}
});
}
Run Code Online (Sandbox Code Playgroud)
任何人都有任何想法我做错了什么?
fhu*_*cho 18
根据文档,仅当View附加到窗口时,才应从非UI线程调用post(...).这可能是问题所在.
| 归档时间: |
|
| 查看次数: |
3091 次 |
| 最近记录: |