runOnUiThread在一个View中

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

我怎样才能使runOnUIThread()调用绘制位图?

有没有内置函数? 或者我应该在构造函数中创build一个Handler并将其用于在UI线程中运行runnables?

Solutions Collecting From Web of "runOnUiThread在一个View中"

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

要么

从一个单独的图像下载线程使用View后期方法将永远在UI线程上运行其Runnable

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

你可以做这样的事情:

  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中一样。

创build一个从AsyncTask扩展的类。 在构造函数中传递ImageView。 在doInBackground方法中,下载图像。 在postExecute方法中,将图像设置为ImageView。