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



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

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

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

一种方法(基于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);

最新更新