Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在视图中读取_Java_Android_View - Fatal编程技术网

Java 在视图中读取

Java 在视图中读取,java,android,view,Java,Android,View,我正在制作一个自定义的ImageView。其中一种方法是从URL加载图像。我想在线程中检索位图,并在UI线程中加载位图 如何调用runOnUIThread()来绘制位图 是否有某种内置功能?或者我应该在构造函数中创建一个处理程序,并将其用于在UI线程中运行runnables吗?通过AsyncTask下载映像,并在其onPostExecute方法中设置为您的视图 或 从单独的图像下载线程使用View的post方法,该方法将始终在UI线程上运行其Runnable: 创建从AsyncTask扩展的类。

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

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


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

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

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


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

您可以执行以下操作:

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

使用处理程序。如果我没有弄错的话,runOnUIThread是一种活动方式。请阅读cyrilchampier在评论中发布的链接。谢谢
 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();