当图像附加到NetworkImageview? volley android

时间:2016-04-22 06:44:30

标签: android android-volley

我正在使用Volley,用于从网络加载图片我使用NetworkImageview

我在NetworkImageview

上展示了一些缩放动画
holder.imgPostPic.setImageUrl(model.Uri, imageLoader);   
holder.imgPostPic.setDefaultImageResId(R.drawable.im_home_no_internet);

我的问题

当我开始缩放动画时,DefaultImageResId开始缩放,这是我不想要的。

我想要什么

我希望动画仅在图像加载到NetworkImageview Zomato app时启动。

我的代码

imageLoader.get(model.Uri, new ImageLoader.ImageListener() {
                        @Override
                        public void onResponse(ImageLoader.ImageContainer response, boolean isImmediate) {
                                if (response != null) {
                                        if (response.getBitmap() != null) {
                                                animate1(myBucketListViewHolder, true);
                                        }
                                }
                        }
                        @Override
                        public void onErrorResponse(VolleyError error) {
                        }
                });

我总是使用此代码获取NULL位图

click here

1 个答案:

答案 0 :(得分:0)

在任何网络调用之前使用此代码Volley检查缓存的位图,否则会设置一个设置默认图像的空位图容器。

final String cacheKey = getCacheKey(requestUrl, maxWidth, maxHeight, scaleType);
    // Try to look up the request in the cache of remote images.
            Bitmap cachedBitmap = mCache.getBitmap(cacheKey);
            if (cachedBitmap != null) {
                // Return the cached bitmap.
                ImageContainer container = new ImageContainer(cachedBitmap, requestUrl, null, null);
                imageListener.onResponse(container, true);
                return container;
            }

            // The bitmap did not exist in the cache, fetch it!
            ImageContainer imageContainer =
                    new ImageContainer(null, requestUrl, cacheKey, imageListener);

            // Update the caller to let them know that they should use the default bitmap.
            imageListener.onResponse(imageContainer, true);

这就是为什么你总是至少有1个空位图响应。

但是,如果您的位图只有空值,那么您可能会在onErrorResponse中检查其他(可能是网络)错误。