Volley NetworkImageView setImageResource 不起作用 原因
2017-08-16 10:09
411 查看
Volley的NetworkImageView setImageResource 设置本地resId时显示是空的,原因是 NetworkImageView 中 onLayout调用 loadImageIfNecessary 方法,
setDefaultImageOrNull();
private void setDefaultImageOrNull() {
if(mDefaultImageId != 0) {
setImageResource(mDefaultImageId);
}
else {
setImageBitmap(null);
}
}
所以就算设置了 setImageResource 也不显示了。
解决办法是:
setImageResource调用前,继续调用正常的 setImageUrl(); url传不为空的错误url,imageloader传正常的。
这样就可以显示本地的resId了。
方法2:只调用setDefaultImageResId方法即可。
当然这是看源码后投机取巧了,是基于不想动volley源码的情况。当然如果直接把NetworkImageView源码导入工程的,那就啥都不用想,直接改,改到你舒心为止。嗯,要舒心,大家好才是真的好。
参考链接:http://qiita.com/kuchinashi_r/items/8a4265af50c337c2f180
private void loadImageIfNecessary(final boolean isInLayoutPass) { // 略 // if the URL to be loaded in this view is empty, cancel any old // requests and clear the // currently loaded image. if (TextUtils.isEmpty(mUrl)) { if (mImageContainer != null) { mImageContainer.cancelRequest(); mImageContainer = null; } setDefaultImageOrNull(); return; } // 略 }
setDefaultImageOrNull();
private void setDefaultImageOrNull() {
if(mDefaultImageId != 0) {
setImageResource(mDefaultImageId);
}
else {
setImageBitmap(null);
}
}
所以就算设置了 setImageResource 也不显示了。
解决办法是:
setImageResource调用前,继续调用正常的 setImageUrl(); url传不为空的错误url,imageloader传正常的。
这样就可以显示本地的resId了。
方法2:只调用setDefaultImageResId方法即可。
当然这是看源码后投机取巧了,是基于不想动volley源码的情况。当然如果直接把NetworkImageView源码导入工程的,那就啥都不用想,直接改,改到你舒心为止。嗯,要舒心,大家好才是真的好。
参考链接:http://qiita.com/kuchinashi_r/items/8a4265af50c337c2f180
相关文章推荐
- Android Volley框架(二):ImageRequest、ImageLoader、NetworkImageView
- 开源框架Volley的使用《二》[NetWorkImageView&&LruCache&ImageLoader]
- android 动态添加ImageView 设置setPadding不起作用问
- android Imageview setBackgroundResource 背景闪一下就消失了
- Volley框架为我们提供了一个NetworkImageView
- Volley框架为我们提供了一个NetworkImageView
- Android 在onActivityResult()中设置图片setImageResource(resId) 或者改变view属性,不成功的解决办法
- 动态添加ImageView 设置setPadding不起作用问题
- Volley框架为我们提供了一个NetworkImageView
- mImageView.setBackgroundResource(R.anim.loading_anim);在studio中会报错
- imageView的ScaleType缩放和setImageResource方法
- Volley学习(四)NetworkImageView+LruCache(源码简读)图片请求小例子
- Volley的更多使用方法详解,imageloader的使用和NetWorkImageView的使用,进阶Volley
- Volley框架为我们提供了一个NetworkImageView
- Volley(二) ImageRequest、Imageloader、NetworkImageView加载图片
- 在代码中为ImageView引用图片之setImageDrawable和setBackgroundResource
- Android 浏览器开发WebView setBlockNetworkImage本末
- Volley框架为我们提供了一个NetworkImageView
- 动态setImageResource后setPadding无效不起作用的处理办法
- 点滴:ImageView setImageResource方法对资源的复用