openGL ES纹理上的位图密度(Android)

时间:2011-11-16 18:56:39

标签: android bitmap textures

我无法在Android的openGL上加载关于其分辨率的纹理。如果纹理是256x256,一切都很完美,但如果它是其他分辨率,程序会在启动时抛出此异常:

android.content.res.Resources $ NotFoundException:资源ID#0x ........

我在互联网上找到了一个以这种方式改变位图密度的代码:

BitmapFactory.Options options = new BitmapFactory.Options();
options.inDensity = 240;

通过这样做,我可以加载512x512纹理。但是我无法加载例如128x128位图,因为我不知道我必须使用哪个密度。我不确定这是加载纹理的正常程序,因为我在互联网上找不到很多信息。

感谢您阅读!

2 个答案:

答案 0 :(得分:0)

你不需要指定密度,你只需要确保图像是2的幂,你似乎已经完成了。我会省略密度选项,只需指定Config.ARGB_8888;

如果这不能解决问题,您可以显示加载纹理的代码

答案 1 :(得分:0)

如果有人遇到这个问题,或者纹理出现乱码(就像是另一个或其他奇怪的东西),我可以通过删除“drawable”文件夹中的所有项目并再次放入它来解决它。似乎指向图像的指针已损坏或其他东西。