提高Volley NetworkImageView图像质量?

时间:2014-04-10 05:03:35

标签: android android-volley

我正在使用Volley NetworkImageView从web加载图像。以下方法是获取ImageLoader。

 public  static ImageLoader getVolleyImageLoader(RequestQueue queue){

        ImageLoader imageLoader = new ImageLoader(queue, new ImageLoader.ImageCache() {
                private final LruCache<String, Bitmap> mCache = new LruCache<String, Bitmap>(5);
                public void putBitmap(String url, Bitmap bitmap) {
                    mCache.put(url, bitmap);
                }
                public Bitmap getBitmap(String url) {
                    return mCache.get(url);
                }
            });

    return imageLoader;

    }

这是布局小部件

  <com.android.volley.toolbox.NetworkImageView
        android:id="@+id/deal_thumb_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_marginLeft="@dimen/deals_image_left_margin" />

这工作正常。成功加载图片。但是图像的质量很差。图像的尺寸太小,实际图像太小。

如何改善图像质量?

1 个答案:

答案 0 :(得分:0)

您必须将排球源代码包含在项目中(如Google IO 2014视频中所示)

然后从工具箱文件夹中打开ImageLoader并更改ImageRequest返回的位图配置:

protected Request<Bitmap> makeImageRequest(String requestUrl, int maxWidth, int maxHeight,
        ScaleType scaleType, final String cacheKey) {
    return new ImageRequest(requestUrl, new Listener<Bitmap>() {
        @Override
        public void onResponse(Bitmap response) {
            onGetImageSuccess(cacheKey, response);
        }
    }, maxWidth, maxHeight, scaleType, Config.RGB_565, new ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            onGetImageError(cacheKey, error);
        }
    });
}

只需按Config.RGB_565更改Config.ARGB_8888即可完成