java有没有办法从多个URL获取多个图像?
这些图像来自不同的URL,我想在ListView
中显示它们。每个URL
代表一个图像,在每个图像都有唯一ID的情况下,如何使用图像URL显示所有图像
“http://www.samplesite.com/Customer/File/DownloadResource/”imageID”?token=“+m_token
08-15 17:19:01.301 25505-25959/com.app.projectactivity W/System.err: java.io.FileNotFoundException: http://samplesite.com/Customer/File/DownloadResource/220?token=aGkvWUlQSW9EeVZmU3pQOFF6WWo5OU4raGdzVjBrSngzWEQvbkNueWxYdz06dGVzdDFAYXBpLmNvbTo2MzYwNjg0OTU0MDgyMDAwMDA6Qw==
08-15 17:19:01.301 25505-25959/com.app.projectactivity W/System.err: at com.安卓.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:238)
08-15 17:19:01.301 25505-25959/com.app.projectactivity W/System.err: at com.app.tysomcustomer.dashboard.LoyaltyFragment$ConvertImageUrlTask.doInBackground(LoyaltyFragment.java:320)
08-15 17:19:01.301 25505-25959/com.app.projectactivity W/System.err: at com.app.tysomcustomer.dashboard.LoyaltyFragment$ConvertImageUrlTask.doInBackground(LoyaltyFragment.java:277)
08-15 17:19:01.301 25505-25959/com.app.projectactivity W/System.err: at 安卓.os.AsyncTask$2.call(AsyncTask.java:295)
08-15 17:19:01.301 25505-25959/com.app.projectactivity W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
08-15 17:19:01.301 25505-25959/com.app.projectactivity W/System.err: at 安卓.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
08-15 17:19:01.301 25505-25959/com.app.projectactivity W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
08-15 17:19:01.301 25505-25959/com.app.projectactivity W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
08-15 17:19:01.301 25505-25959/com.app.projectactivity W/System.err: at java.lang.Thread.run(Thread.java:818)
# 1 楼答案
使用
HttpURLConnection
从URL获取输入流。然后使用BitmapFactory
将此流解码为位图。 请记住不要在主线程中运行此代码。否则,它将阻止任何内容,直到图像被下载和解码# 2 楼答案
要异步下载多个图像文件,您应该使用诸如Universal image Loader、Fresco、毕加索、Glide、Volley image Loader等库
我个人最喜欢的是Universal Image Loader
它为您提供了执行某些任务的选项,如
onLoadingStarted, onLoadingFailed, onLoadingComplete, onLoadingCancelled
等这是从服务器加载图像而不必担心asycTask的最佳方法,并且在列表视图中工作良好