У меня есть 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);