我搜索了很多,但一直没有找到正确的答案。
哪种方式显示小图像或大图像更好/更快?
最佳答案
这可能无法直接回答您的问题,但您是否尝试过使用 Volley 的 NetworkImageView
类(class) ?
最近,我使用了 Volley
在一个显示图像的大型项目中,它比我以前见过的任何东西都更快、更稳定。 Volley 是由 Google 的好人开发的 Android 网络库,它包括开箱即用的图像下载。它可以轻松处理小图像或大图像。您需要做的就是将 Volley 库添加到您的项目中,并将 XML 布局中的 ImageView
替换为 com.android.volley.toolbox.NetworkImageView
。
将以下变量添加到您的 Activity
类中:
private RequestQueue mRequestQueue;
private ImageLoader mImageLoader;
在 Activity
的 onCreate()
方法中创建对象:
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);
}
});
然后使用 Adapter
类的 getView()
方法下载图像:
NetworkImageView image = (NetworkImageView)view.findViewById(R.id.image);
image.setImageUrl("http://somerandomurl.com/somerandomimage.png",mImageLoader);
在生产代码中,您将使用 RequestQueue
和 ImageLoader
类的全局实例,并且您的 onCreate()
方法不会不要像这里一样困惑。
我不会使用 WebView
来显示图像,尽管它当然可以做到。如果你真的想看看哪种方式“更快”,你可以试试 ImageView
、NetworkImageView
和 WebView
加载大图像并获得使用 System.nanoTime()
方法粗略估计时间。
关于java - Android webview vs. imageview 显示图片的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21659181/