Java 如何将数组列表设置为listview中的图像视图

Java 如何将数组列表设置为listview中的图像视图,java,android,imageview,Java,Android,Imageview,我有一个包含ImageView I的listview。现在我有一个数组列表,其中包含URL,如www.abc.jpg、www.def.jpg等等。现在我想插入这些URL作为图像视图的源。有可能吗?ImageView没有任何允许设置稍后下载的URL的API。您需要从ImageView设置中分离出一个异步任务,该任务将从url下载此图像,将其转换为位图,然后使用setImageBitmapBitmap在ImageView上进行设置。如上所述,您正在主线程中进行网络I/O。堆栈跟踪将其标识为发生在on

我有一个包含ImageView I的listview。现在我有一个数组列表,其中包含URL,如www.abc.jpg、www.def.jpg等等。现在我想插入这些URL作为图像视图的源。有可能吗?

ImageView没有任何允许设置稍后下载的URL的API。您需要从ImageView设置中分离出一个异步任务,该任务将从url下载此图像,将其转换为位图,然后使用setImageBitmapBitmap在ImageView上进行设置。

如上所述,您正在主线程中进行网络I/O。堆栈跟踪将其标识为发生在onPostExecute中。在那里,我看到了以下代码:

BitmapFactory.decodeStream(newurl.openConnection() .getInputStream()
在我看来,这当然像是网络I/O


我想知道的是,您已经有了这个可爱的工作线程,但是您在onPostExecute主线程中做了很多工作。为了防止janky UI,我建议您将尽可能多的计算转移到DoinBackground中。

如何设置异步任务。?查看此链接有许多Android库可以帮助您实现这一点,如RoboSpice、改装、凌空等。如果您希望手动下载,那么这可能不是一个完美但足够好的解决方案。请查看更新的问题。我试过了,我得到了网络上的主线程异常。