我正试图在Android屏幕上获得一种触摸点颜色。但它只显示RGB =(0,0,0)值。我搜索过其他网站。它说我应该在下面添加一些代码,但它没有改变任何东西。
getHolder().setFormat(PixelFormat.TRANSLUCENT);
setEGLConfigChooser(8,8,8,8,0,0);
所以任何建议都会得到提前感谢。
ByteBuffer PixelBuffer = ByteBuffer.allocateDirect(4);
PixelBuffer.order(ByteOrder.nativeOrder());
PixelBuffer.position(0);
int mTemp = 0;
GLES20.glReadPixels(touchX, touchY, 1, 1, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, PixelBuffer);
byte b[] = new byte[4];
PixelBuffer.get(b);
tmp = String.valueOf(String.format("RED : %d GREEN %d BLUE %d", PixelBuffer.get(0), PixelBuffer.get(1), PixelBuffer.get(2)));
tmp += String.valueOf(String.format("RED : %d GREEN %d BLUE %d", b[0], b[1], b[2]));
Log.e("COLOR", "R:" + PixelBuffer.get(0) + PixelBuffer.get(1) + PixelBuffer.get(2));
答案 0 :(得分:0)
您是否将openGL用于绘制屏幕或仅使用普通应用程序? 如果您使用openGL,那么您是否使用OpenGL 2.0或1.x来绘制屏幕? 你打电话支持openGLES 2.0吗?我可以看到他们没有太多设备支持它。 您可以查看http://code.google.com/p/libgdx/源代码,他们有一些获取FramBuffer像素的示例。
例如“libgdx \ extensions \ gdx-tools \ src \ com \ badlogic \ gdx \ tools \ hiero \ BMFontUtil.java”第176行。