0

有以下我用来下载一些图像的异步任务。工作正常,除了第一个图像,它并不总是出现,除非我做一些事情,比如移动到下一个图像然后再回来。

public class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
    static ImageView _imageView=null;

    public DownloadImageTask(ImageView ctl){
        _imageView=ctl;
    }

    protected void onPostExecute(Bitmap result) {
        _imageView.setImageBitmap(result);
    }
    ...
}

我认为这可能是在后台线程上更新 UI 的问题,所以我使用一个抽象类重新处理了这个问题,该类调用 UI 线程上调用 .setImageBitmap() 的方法,但我仍然得到相同的行为 - 对所有人都适用除了第一个图像,除非我移动到下一个图像并再次返回。

设置图像后,有没有办法在图像视图上强制重绘?

4

1 回答 1

0

我有一个类似的问题,我所做的Activity.onCreate()是这样的:

ListView listView = (ListView) findViewById(R.id.myListView);
adapter = new MyArrayAdapter(this, myArray, ...);
listView.setAdapter(adapter);
if (myArray.size() > 0)
{
    // Fake a click on the first item
    onItemClick(listView, myArray, 0, 0);
}

然后,onItemClick()执行查找ImageView当前行所需的操作。当然,没有看到你的代码,上面只是一个疯狂的猜测......

于 2012-05-31T04:37:08.067 回答