按照Android OpenGL编程的示例代码,我从原始资源加载纹理。
例如,
// Create a texture handle
int[] texArray = new int[1];
GLES20.glGenTextures(1, texArray, 0);
int textureID = texArray[0];
// Bind the texture and configure parameters
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textureID);
GLES20.glTexParameterf(etc...);
// Open the image resource as a stream
InputStream is = resources.openRawResource(R.raw.sometexture);
// Read the stream into a bitmap
Bitmap bitmap = BitmapFactory.decodeStream(is);
// Load the bitmap into GL
GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, bitmap, 0);
bitmap.recycle();
is.close();
(我的实际代码确实有错误检查等...)
这是从存储在res / raw / sometexture.png中的PNG文件加载位图
如何根据当前显示密度加载图像?我假设我会将图像放入各种res / drawable - ?? dpi文件夹,但后来不确定如何加载它们!
答案 0 :(得分:0)
显然,我可以使用
BitmapFactory.decodeResource(getResources(), R.drawable.sometexture);
这将从/ res /./ / p>下的drawable - ?? dpi文件夹的最佳可用选项加载图像