Как эффективно изменить размер растрового изображения без потери качества в android

У меня есть Bitmap размером 320x480 и мне нужно растянуть его на разных экранах устройств, я попробовал использовать это:

Rect dstRect = new Rect();
canvas.getClipBounds(dstRect);
canvas.drawBitmap(frameBuffer, null, dstRect, null);

он работает, изображение заполняет весь экран, как я хотел, но изображение пиксельное и выглядит плохо. Затем я попробовал:

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);

на этот раз он выглядит идеально, красиво и гладко, но этот код должен быть в моем основном игровом цикле, и создание Bitmap s на каждой итерации делает его очень медленным. Как мне изменить размер моего изображения, чтобы оно не было пиксельным и выполняется быстро?

НАШЛИ РЕШЕНИЕ:

Paint paint = new Paint();
paint.setFilterBitmap();
canvas.drawBitmap(bitmap, matrix, paint);
14
задан Luksprog 30 March 2012 в 12:46
поделиться