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

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как эффективно и без потери качества изменить размер растрового изображения в Android

Сообщение Anonymous »

У меня есть растровое изображение размером 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);


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

НАЙДЕНО РЕШЕНИЕ:

Paint paint = new Paint();
paint.setFilterBitmap();
canvas.drawBitmap(bitmap, matrix, paint);


Подробнее здесь: https://stackoverflow.com/questions/832 ... in-android
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»