我正在使用OpenGL ES 2.0将覆盖贴纸加载到我的图像中,它在某些设备(如一加和最大)中工作正常,但它不适用于某些中档设备,如moto g3。
我尝试了堆叠溢出的其他答案,但它们似乎都不适用于我。
这是我的加载代码
public void load(int i, int j, int k)
{
Utils.printLog(TAG, (new StringBuilder()).append("startX:").append(j).append(" startY:").append(k).toString());
if(bitmap != null)
{
GLES20.glActiveTexture(33984 + textureId);
GLES20.glBindTexture(3553, i);
GLES20.glTexParameteri(3553, 10241, 9729);
GLES20.glTexParameteri(3553, 10240, 9729);
GLES20.glTexParameterf(3553, 10242, 33071F);
GLES20.glTexParameterf(3553, 10243, 33071F);
imageWidth = bitmap.getWidth();
imageHeight = bitmap.getHeight();
Log.d("TAG", "Width is " + imageWidth + "H is " + imageHeight);
int l;
Log.d("TAG", bitmap.getConfig().toString());
if(bitmap.getConfig() == Bitmap.Config.ALPHA_8)
{
GLES20.glPixelStorei(3317, 1);
GLUtils.texSubImage2D(3553, 0, j, k, bitmap);
GLES20.glPixelStorei(3317, 4);
} else
{
GLUtils.texSubImage2D(3553, 0, j, k, bitmap);
}
l = GLES20.glGetError();
if(l != 0)
{
Log.e("SubOverlay", (new StringBuilder()).append("load: texSubImage2D() ").append(l).toString());
(new Throwable()).printStackTrace();
}
startX = j;
startY = k;
widthRatio = imageWidth / displayWidth;
heightRatio = imageHeight / displayHeight;
bitmap.recycle();
initPos();
}
}
请帮我解决这个问题。