0

我正在尝试在 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));
4

1 回答 1

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 行。

于 2012-08-16T13:35:17.873 回答