runOnUiThread inside a View

2022-09-02 11:15:58

我正在定制.其中一种方法是从 URL 加载图像。我想在线程中检索位图,并在UI线程中加载位图。ImageView

如何调用绘制位图?runOnUIThread()

是否有某种内置功能?或者我应该在构造函数中创建一个,并将其用于在UI线程中运行可运行项?Handler


答案 1

通过以下方式下载图像,并在其 onPostExecute 方法中设置为您的视图AsyncTask

从单独的图像下载线程使用post方法,其方法将始终在UI线程上运行:ViewRunnable

yourImageView.post(new Runnable() {
    @Override
    public void run() {
        // set the downloaded image here

    }
});

答案 2

你可以做这样的事情:

 new Thread(new Runnable() {
   public void run() {
     final Bitmap bm = getBitmapFromURL(myStation.getStation().imageURL);
     ((Activity) context).runOnUiThread(new Runnable() {
       public void run() {
         icon.setImageBitmap(bm);
       }
     });
   }
 }).start();

这将在活动之外工作,例如在ListAdapter中。


推荐