我知道有很多关于这个问题的问题,但很少有人会对openGL这个问题。
我尝试将一些PNG文件从assets文件夹加载到Bitmap中,但由于某种原因,返回的Bitmap为null,这反过来会抛出NullPointerException:
GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, bitmap, 0);
我用来从资源文件夹加载图片的代码:
public static Bitmap getBitmapFromAsset(AssetManager mgr, String path)
{
InputStream is = null;
Bitmap bitmap = null;
try {
is = mgr.open(path);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inScaled = false;
bitmap = BitmapFactory.decodeStream(is, null, options);
}
catch (final IOException e)
{
bitmap = null;
Log.e(TAG, "FAILED TO get getBitmapFromAsset: " + e.getMessage());
}
finally
{
if (is != null)
{
try
{
is.close();
}
catch (IOException ignored)
{
}
}
}
return bitmap;
}
我尝试了几种不同的方法,例如没有BitmapFactory.Options,但无论我得到什么NullPointerException,所以我猜测还有另外一个我应该做的程序
P.S。我可以从res / raw文件夹加载它们,但是我没有子目录来组织我的资产。
答案 0 :(得分:1)
好的,我刚刚意识到我的资源文件夹出于某种原因在res文件夹下。我只是将它放在主文件夹app / main / assets下,它正在工作。 *脸红