我经常搜索,但从未找到正确的答案。
哪种方式更好/更快地显示小图像或大图像?
答案 0 :(得分:4)
这可能无法直接回答您的问题,但您是否尝试过使用Volley的NetworkImageView
课程?我最近在一个大型项目中使用Volley来显示图像,它比我以前见过的任何东西都更快更稳定。 Volley是由谷歌的好人开发的Android网络库,它包括图像下载作为其工具箱的一部分。目前没有官方文档,但您可以在网上找到任意数量的示例。它可以轻松处理小图像或大图像。您需要做的就是将Volley库添加到项目中,并使用ImageView
替换XML布局中的com.android.volley.toolbox.NetworkImageView
。
将以下变量添加到Activity
类:
private RequestQueue mRequestQueue;
private ImageLoader mImageLoader;
使用onCreate()
的{{1}}方法创建对象:
Activity
然后使用mRequestQueue = Volley.newRequestQueue(context);
mImageLoader = new ImageLoader(mRequestQueue, new ImageLoader.ImageCache() {
private final LruCache<String, Bitmap> mCache = new LruCache<String, Bitmap>(10);
public void putBitmap(String url, Bitmap bitmap) {
mCache.put(url, bitmap);
}
public Bitmap getBitmap(String url) {
return mCache.get(url);
}
});
课程的getView()
方法下载图片:
Adapter
在生产代码中,您将使用NetworkImageView image = (NetworkImageView)view.findViewById(R.id.image);
image.setImageUrl("http://somerandomurl.com/somerandomimage.png",mImageLoader);
和RequestQueue
类的全局实例,并且您的ImageLoader
方法不会像在此玩具示例中那样混乱。
我不会使用webview来显示图像,当然可以这样做。如果你真的想看看哪种方式“更快”,你可以尝试onCreate()
,ImageView
和NetworkImageView
来加载大图片并使用{{1来获得粗略的时间估算方法。