我需要訪問原始表面緩衝區(應用程序表面,而不是設備幀緩衝區),我可以在其中使用內存從本地線程移動指令來繪製位。像Windows API中的SetDIBits或SetDIBitsToDevice,但在Android設備上。Android原始表面緩衝區(相當於winapi32 SetDIBits)
我想有幾種方法可以做到這一點:通過OpenGL | ES,通過Java ...我想要一個不同的方法來做到這一點,我應該使用哪些功能(使用示例不需要)的簡短列表。
我需要訪問原始表面緩衝區(應用程序表面,而不是設備幀緩衝區),我可以在其中使用內存從本地線程移動指令來繪製位。像Windows API中的SetDIBits或SetDIBitsToDevice,但在Android設備上。Android原始表面緩衝區(相當於winapi32 SetDIBits)
我想有幾種方法可以做到這一點:通過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);