2014-09-23 65 views

回答

0

ImageView没有任何API允许设置将在稍后下载的URL。您需要与ImageView分开设置一个异步任务,该任务将从url下载此图像,将其转换为Bitmap,然后使用setImageBitmap(Bitmap)将其设置为ImageView

+0

如何设置异步任务。 – Akshat 2014-09-23 09:43:36

+0

http://stackoverflow.com/questions/18953632/how-to-set-image-from-url-for-imageview检查这个链接 – 2014-09-23 09:45:46

+0

有很多Android的库可以帮助你像RoboSpice,Retrofit ,Volley等人。如果你想手动下载,那么http://developer.android.com/reference/android/os/AsyncTask.html是一个可能并不完美但足够好的解决方案。 – 2014-09-23 09:46:09

0

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

BitmapFactory.decodeStream(newurl.openConnection() .getInputStream() 

这对我来说确实看起来像网络I/O。

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