J'ai une image bitmap prise d'une chaîne Base64 de ma base de données distante, ( encodedImage
est la chaîne représentant l'image avec Base64):
profileImage = (ImageView)findViewById(R.id.profileImage);
byte[] imageAsBytes=null;
try {
imageAsBytes = Base64.decode(encodedImage.getBytes());
} catch (IOException e) {e.printStackTrace();}
profileImage.setImageBitmap(
BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length)
);
profileImage est mon ImageView
D'accord, mais je dois redimensionner cette image avant de l'afficher sur ImageView
ma mise en page. Je dois le redimensionner à 120x120.
Quelqu'un peut-il me dire le code pour le redimensionner?
Les exemples que j'ai trouvés n'ont pas pu être appliqués à un bitmap obtenu en chaîne base64.
Réponses:
Changement:
À:
la source
EDIT: comme suggéré par @aveschini, j'ai ajouté
bm.recycle();
pour les fuites de mémoire. Veuillez noter que si vous utilisez l'objet précédent à d'autres fins, gérez-le en conséquence.la source
public Bitmap getResizedBitmap(Bitmap bm, int newWidth, int newHeight)
. J'ai passé un temps fou à le comprendre. ; PSi vous avez déjà un bitmap, vous pouvez utiliser le code suivant pour redimensionner:
la source
Échelle basée sur le rapport hauteur / largeur :
Pour utiliser la hauteur comme base à l'intérieur de la largeur, changez en:
la source
Mettez à l'échelle une image bitmap avec une taille et une largeur maximales cibles, tout en conservant les proportions:
la source
essayez ce code:
J'espère que c'est utile.
la source
Quelqu'un a demandé comment conserver les proportions dans cette situation:
Calculez le facteur que vous utilisez pour la mise à l'échelle et utilisez-le pour les deux dimensions. Disons que vous voulez qu'une image soit à 20% de la hauteur de l'écran
pour obtenir la résolution d'écran, vous avez cette solution: Obtenez les dimensions de l'écran en pixels
la source
Essayez ceci: cette fonction redimensionne un bitmap proportionnellement. Lorsque le dernier paramètre est défini sur "X", il
newDimensionXorY
est traité comme une nouvelle largeur s et lorsqu'il est défini sur "Y" une nouvelle hauteur.la source
la source
la source
la source
À partir de l'API 19, Bitmap setWidth (int width) et setHeight (int height) existent. http://developer.android.com/reference/android/graphics/Bitmap.html
la source
Redimensionnement bitmap basé sur n'importe quelle taille d'affichage
la source
Bien que la réponse acceptée soit correcte, elle ne se redimensionne pas
Bitmap
en conservant le même rapport hauteur / largeur . Si vous recherchez une méthode pour redimensionnerBitmap
en conservant le même rapport d'aspect, vous pouvez utiliser la fonction utilitaire suivante. Les détails d'utilisation et l'explication de la fonction sont présents sur ce lien .la source
la source
Garder le rapport hauteur / largeur,
la source