我有两个module
, app
和base
,其中app
依赖base
我在app
中想要加载一张图片R.mipmap.ic_launcher
这是我的代码
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
- 如果我的
ic_launcher
是在app
模块下的话,这时bitmap
为空。后续操作就会有问题 - 我如果使用
ImageView
的src:
来加载图片的话是可以显示出来的。 - 当我把图片从
app
移动到base
下后,同样的代码获取到的bitmap
又不为空了。 - 如果我用
getResources().getDrawable(R.mipmap.ic_launcher)
是可以获取到Drawable
对象的。
所以我想问下是这个资源文件转Bitmap
的方法有问题吗?
我查看了ImageView
的源码发现ImageView
是将资源转换为Drawable
对象。
在ic_launcher
存在于app
下时,R.mipmap.ic_launcher
是有值的。
我调用的BitmapFactory.decodeResource
, 最后是走到native方法
DecodeAsset
中,已经超出我能力范围了。
我的代码在这github
原因是多个module都存在相同命名的资源,这时资源id被改变了(待验证),所以找不到了。
解决方法是,确保所有module下的资源文件没有任何两个为相同的。。