在我的GridView适配器中,我正在尝试有效地加载图像,所以我一直在使用Picasso 2.5.2(允许按资源ID加载)。
SkImageDecoder::Factory returned null
但是,当我使用此消息传入resourceId时,它总是会显示一个空白图像。
imageView.setImageBitmap(BitmapFactory.decodeResource(App.get().getResources(), resId));
在我查看Picasso Github页面之前,我想我会尝试使用Framework调用:
imageView.setImageResource(resId);
App.get()返回我的app单例,因此Context是合法的。我也尝试在getView params中传递来自父节点的上下文并传入Activity Context。记录resId会向我显示drawable的正确ID,但它仍然不起作用,但是这有效:
if(spr.getBoundingRectangles.contain(x,y)){
//do this
}
...但这并不好,因为我没有机会通过加载较小尺寸的图像来保留记忆。
我已经尝试过Genymotion和具有相同结果的真实设备。
因此,在Logcat中,上下文和资源ID都很好,这里还有什么问题呢?
答案 0 :(得分:0)
资源ID是drawable的整数值。请尝试以下代码获取 资源ID:
int resId = resources.getIdentifier(
productImageName, "drawable", context.getPackageName());
您可以从here了解详情。