我試圖移植一個模擬器,我已經寫在java到android。事情一直很好,我能夠移植我的大部分代碼,但由於模擬的工作原因,我需要在像素級渲染圖像。android快速像素訪問和操作
至於桌面Java我使用
int[] pixelsA = ((DataBufferInt) src.getRaster().getDataBuffer()).getData();
這讓我獲得參考像素緩衝區和更新上飛(最小化對象的創建)
目前,這是我的什麼模擬器機器人確實對於每一幀
@Override
public void onDraw(Canvas canvas)
{
buffer = Bitmap.createBitmap(pixelsA, 256, 192, Bitmap.Config.RGB_565);
canvas.drawBitmap(buffer, 0, 0, null);
}
pixelsA是一個數組INT [],pixelsA包含了所有的顏色信息,所以每幀將有來創建位圖對象在做
buffer = Bitmap.createBitmap(pixelsA, 256, 192, Bitmap.Config.RGB_565);
我認爲這是相當昂貴和緩慢。
有沒有什麼方法可以有效地用畫布繪製像素?
真,createBitmap是緩慢的,它是內存拷貝,甚至是像素格式在你的情況下的轉換! –