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>