我试图移植一个模拟器,我已经写在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是缓慢的,它是内存拷贝,甚至是像素格式在你的情况下的转换! –