Comment redimensionner une image bitmap eficiently et avec la perte de qualité dans android

J'ai un Bitmap avec une taille de 320x480 et j'ai besoin de l'étirer sur les différents écrans d'appareils, j'ai essayé d'utiliser ce:

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

il fonctionne, l'image remplit tout l'écran comme je le voulais, mais l'image est pixélisée, et il est mauvais. Ensuite, j'ai essayé :

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

cette fois, il semble parfait, agréable et lisse, mais ce code doit être dans ma boucle principale du jeu et de la création de Bitmaps chaque itération rend très lente. Comment puis-je redimensionner mon image, de sorte qu'il ne soit pas pixélisé et se fait vite?

TROUVÉ LA SOLUTION:

Paint paint = new Paint();
paint.setFilterBitmap();
canvas.drawBitmap(bitmap, matrix, paint);
Si vous avez trouvé votre propre solution, vous devez l'ajouter en tant que réponse à votre question et accepter de vous-même alors que d'autres ne pas ajouter indésirables des réponses à votre question.

OriginalL'auteur user924941 | 2011-11-30