在我的 GridView 适配器中,我试图有效地加载图像,所以我一直在使用 Picasso 2.5.2(它允许通过资源 id 加载)。
Picasso.with(mContext)
.load(resId)
.noFade()
.resize(newSize, newSize)
.into(imageView);
但是,当我通过此消息传入 resourceId 时,它总是给出一个空白图像。
SkImageDecoder::Factory returned null
在我检查 Picasso Github 页面之前,我想我会尝试使用 Framework 调用:
imageView.setImageBitmap(BitmapFactory.decodeResource(App.get().getResources(), resId));
App.get() 返回我的应用程序单例,因此 Context 是合法的。我还尝试在 getView 参数中从父级传递上下文并传递一个 Activity 上下文。记录 resId 向我显示了可绘制对象的正确 id,但它仍然无法正常工作,但这有效:
imageView.setImageResource(resId);
...但这不好,因为我没有机会通过以较小尺寸加载图像来保留内存。
我已经在 Genymotion 和真实设备上进行了尝试,结果相同。
所以上下文和资源 ID 在 Logcat 中都很好,这里还有什么问题?