古典的なゲームを模倣したアプリを作成しています。したがって、ピクセル アートをレンダリングする必要があります。
バッファとして 100x100 ビットマップがあり、問題なくバッファにすべてを描画します。
480x480 Canvas でレンダリングしようとすると、ここで問題が発生します。
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 ミリ秒以上かかります)。だから、もっと良い方法がないか尋ねたくて書いています。ありがとうございました。