Le code ci-dessous redimensionne un bitmap et conserve le rapport de format. Je me demandais s'il y a une manière plus efficace de redimensionnement, car j'ai eu l'idée que je écris du code déjà disponible dans l'API Android.
private Bitmap resizeImage(Bitmap bitmap, int newSize){
int width = bitmap.getWidth();
int height = bitmap.getHeight();
int newWidth = 0;
int newHeight = 0;
if(width > height){
newWidth = newSize;
newHeight = (newSize * height)/width;
} else if(width < height){
newHeight = newSize;
newWidth = (newSize * width)/height;
} else if (width == height){
newHeight = newSize;
newWidth = newSize;
}
float scaleWidth = ((float) newWidth) / width;
float scaleHeight = ((float) newHeight) / height;
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0,
width, height, matrix, true);
return resizedBitmap;
}
3 Réponses :
Je ne pense vraiment pas, j'ai fait presque la même manière que vous, et j'ai eu l'idée des pages de développeurs Android ... P>
dépend de la manière dont vous utilisez l'image. Si tout ce que vous voulez faire est d'afficher le bitmap dans une vue, appelez simplement myImageView.setimagebitmap (bitmap) code> et laissez le cadre le redimensionner. Mais si vous êtes préoccupé par la mémoire, la mise à l'échelle d'abord peut être une bonne approche. P>