Android原始表面缓冲区(winapi32 SetDIBits等效)

时间:2014-03-01 15:52:00

标签: android graphics

我需要访问原始表面缓冲区(应用程序表面,而不是设备帧缓冲区),我可以使用本机线程中的内存移动指令来绘制位。类似于Windows API中的SetDIBits或SetDIBitsToDevice,但是在Android设备上。

我想有几种方法可以做到这一点:通过OpenGL | ES,通过Java ...我想要一个简短的列表,列出不同的方法,我应该使用哪些功能(不需要用法示例)。

2 个答案:

答案 0 :(得分:0)

在最低级别你有gralloc,但最近的Android版本推荐的界面是SurfaceTexture(http://developer.android.com/reference/android/graphics/SurfaceTexture.html)。

答案 1 :(得分:0)

一种方式(基于prabindh答案)是:

Canvas canvas = myTextureView.lockCanvas();
canvas.drawBitmap(int[] colors, int offset, int stride, int x, int y, int width, int height, boolean hasAlpha, Paint paint);
myTextureView.unlockCanvasAndPost(canvas);