我正在使用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
位图
答案 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中检查其他(可能是网络)错误。