我有一个奇怪的情况:将我的PNG从/ drawable-hdpi /移动到/ drawable /并将XML位图放到/ drawable-hdpi /后,我无法用BitmapFactory.decodeResource()方法解码这些位图- 它返回null.更奇怪的是:
context.getResources().getDrawable(xml_id)- 获得drawable我在logcat中看到的是:
12-03 16:18:13.557:D/skia(2566):--- SkImageDecoder :: Factory返回null
12-03 16:18:13.557:D/skia(2566):--- SkImageDecoder :: Factory返回null
12-03 16:18:13.567:D/skia(2566):--- SkImageDecoder :: Factory返回null
所以我会猜测解码器被给予xml文件来解码而不是实际的资源(我检查的是有效的).
任何提示?是否可以BitmapFactory.decodeResource()使用xml位图?顺便说一下,我正在使用API 7.
而且我也尝试将原始lpngs放入drawable-nodpi中,但这也无济于事.谢谢
获取drawable,然后转换为Bitmap:
Drawable drawable = getResources().getDrawable(resId);
Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();
Run Code Online (Sandbox Code Playgroud)
现在您可以使用Bitmap对象.
XML 位图到底是什么?BitmapFactory.decodeResource() 加载位图图像 - 您应该使用 PNG 或 JPEG 图像,而不是其他图像。
请停止向 -hdpi 和 -nodpi 或其他内容随意添加内容。对于给定的资源名称,所有不同的 dpi 限定符或类似内容都提供同一事物的不同变体。您不应该将其中一些作为位图,而另一些作为 XML 文件,将 -nodpi 与其他变体混合使用也是没有意义的。
| 归档时间: |
|
| 查看次数: |
5533 次 |
| 最近记录: |