我正在尝试将我用java编写的模拟器移植到android.事情进展顺利,我能够通过微小的更改移植我的大部分代码,但由于仿真的工作方式,我需要在像素级渲染图像.
至于我使用的桌面java
int[] pixelsA = ((DataBufferInt) src.getRaster().getDataBuffer()).getData();
Run Code Online (Sandbox Code Playgroud)
这允许我获得对像素缓冲区的引用并动态更新它(最小化对象创建)
目前这是我的android模拟器为每一帧做的
@Override
public void onDraw(Canvas canvas)
{
buffer = Bitmap.createBitmap(pixelsA, 256, 192, Bitmap.Config.RGB_565);
canvas.drawBitmap(buffer, 0, 0, null);
}
Run Code Online (Sandbox Code Playgroud)
pixelsA是一个数组int [],pixelsA包含所有颜色信息,因此每个帧都需要通过执行来创建一个位图对象
buffer = Bitmap.createBitmap(pixelsA, 256, 192, Bitmap.Config.RGB_565);
Run Code Online (Sandbox Code Playgroud)
我认为这是相当昂贵和缓慢的.
有没有办法用画布有效地绘制像素?