Mam Bitmap
o rozmiarze 320x480
i muszę naciągnąć go na różnych ekranach urządzeń, próbowałem przy użyciu to:Jak zmienić rozmiar bitmapy eficiently iz zewnątrz utraty jakości w Android
Rect dstRect = new Rect();
canvas.getClipBounds(dstRect);
canvas.drawBitmap(frameBuffer, null, dstRect, null);
to działa , obraz wypełnia cały ekran, tak jak chciałem, ale obraz jest pikselowany i wygląda źle. Potem próbowałem:
float scaleWidth = (float) newWidth/width;
float scaleHeight = (float) newHeight/height;
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
Bitmap resizedBitmap = Bitmap.createBitmap(frameBuffer, 0, 0,
width, height, matrix, true);
canvas.drawBitmap(resizedBitmap, 0, 0, null);
tym razem wygląda na idealny, ładny i gładki, ale kod ten musi być w moim głównej pętli gry i tworzenia Bitmap
s każda iteracja sprawia, że bardzo powoli. Jak mogę zmienić rozmiar mojego obrazu, aby nie był pixelowany i szybko?
znaleziono rozwiązanie:
Paint paint = new Paint();
paint.setFilterBitmap();
canvas.drawBitmap(bitmap, matrix, paint);
Jeśli znalazłeś własne rozwiązanie, powinieneś dodać je jako odpowiedź na swoje pytanie i zaakceptować je samodzielnie, aby inni nie dodawali niechcianych odpowiedzi na twoje pytanie. – Kuffs