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 に答える