java - Android webview vs. imageview 显示图片的性能

标签 java android android-webview android-imageview android-volley

我搜索了很多,但一直没有找到正确的答案。

哪种方式显示小图像或大图像更好/更快?

最佳答案

这可能无法直接回答您的问题,但您是否尝试过使用 Volley 的 NetworkImageView类(class) ?

最近,我使用了 Volley在一个显示图像的大型项目中,它比我以前见过的任何东西都更快、更稳定。 Volley 是由 Google 的好人开发的 Android 网络库,它包括开箱即用的图像下载。它可以轻松处理小图像或大图像。您需要做的就是将 Volley 库添加到您的项目中,并将 XML 布局中的 ImageView 替换为 com.android.volley.toolbox.NetworkImageView

将以下变量添加到您的 Activity 类中:

private RequestQueue mRequestQueue;
private ImageLoader mImageLoader;

ActivityonCreate() 方法中创建对象:

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);

在生产代码中,您将使用 RequestQueueImageLoader 类的全局实例,并且您的 onCreate() 方法不会不要像这里一样困惑。

我不会使用 WebView 来显示图像,尽管它当然可以做到。如果你真的想看看哪种方式“更快”,你可以试试 ImageViewNetworkImageViewWebView 加载大图像并获得使用 System.nanoTime() 方法粗略估计时间。

关于java - Android webview vs. imageview 显示图片的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21659181/

相关文章:

java - Android - 获取 GPS 坐标和位置

android - 如何在不单击按钮的情况下执行任何功能,只需在 edittext 中输入值?

java - android studio 倒数计时器的问题

Android WebView shouldOverrideUrlLoading 问题

java - 使用 freeTTS 语音时无法播放 gif - Java

java - 保存 Jackson ObjectMapper 的配置

java - 即使有更新 ="always"策略 ="always",JNLP 也不会更新

java - 使用 IntelliJ 在 Android 上用 Scala 编写的 LibGDX 项目

android - 带有嵌入式视频的 WebView 在后台播放

android - 在 android webview 中以全屏模式播放 youtube 视频