我正在制作一个模仿经典游戏的应用程序。因此我需要渲染一些像素艺术。
我有一个 100x100 位图作为缓冲区,我在缓冲区上绘制所有内容没有任何困难。
当我尝试在 480x480 画布上渲染它时,问题就来了。
Bitmap.createScaledBitmap 会给我一个模糊的位图,所以我使用下面的代码在“块(放大的像素)”之间进行清晰的划分。
float scale = getWidth() / 100f;
for(int y = 0 ; y < getHeight() ; y++){
for(int x = 0 ; x < getWidth() ; x++){
buffer2.setPixel(x, y, buffer.getPixel((int)(x / scale), (int)(y / scale)));
}
}
该代码运行良好,并且完全符合我的要求。但是性能很差(需要 300+ 毫秒)。所以我写信询问是否有更好的出路。谢谢你。