Dans Android, en raison de la diversité des téléphones mobiles avec différents pixels, pour une image, il y aura des différences dans l'affichage de différents téléphones mobiles en raison de différents pixels.
Il est nécessaire de remplir l'écran entier avec une largeur d'image et de l'affichage.
Ce que nous faisons souvent peut être de traiter les images de deux manières suivantes.
Définissez l'attribut Layout_parent = "Match_parent" et Layout_Parent = "Wrap_Content" via ImageView> et utilisez l'attribut ScaleType de <ImageView> pour la mise à l'échelle.
- ScaleType = "FitXy": Lorsqu'il est réglé sur cette propriété, il fera que l'image s'étire horizontalement, provoquant la déformation de l'image, et s'il y a une police sur l'image, alors ce sera une mauvaise chose.
- Scaletype = "CenterCrop": il devrait être bien à l'échelle dans le même rapport, mais il est très embarrassant, cela ne fonctionne toujours pas. Lors du traitement de l'image, la taille de l'image sera d'abord obtenue, puis la largeur et la hauteur de l'image seront déterminées avant la mise à l'échelle. De cette façon, une fois la plage de l'image déterminée, le point central de l'image est également mis à l'échelle jusqu'à ce que la largeur remplisse complètement l'écran. Ceci est très embarrassant, les parties supérieures et inférieures de l'image seront coupées, donc l'image n'est pas entièrement affichée, et ce n'est toujours pas ce que nous voulons.
Mon approche consiste à obtenir l'image après la mise à l'échelle dans le code, puis à ajouter l'image en définissant Backgroud, qui résout le problème. Puis le code ci-dessus:
// Obtenez la résolution de l'image, obtenez la largeur DisplayMetrics DM = new DisplayMetrics (); getWindowManager (). GetDefaultDisplay (). GetMetrics (DM); int mscreenwidth = dm.widthPixels; // obtenir la largeur de résolution d'écran int mscreenHeight = dm.HeightPixels; // Chargez l'image bitmap bitmap = bitmapfactory.decodeResource (getResources (), r.drawable.bank_help); int bitmapWidth = bitmap.getWidth (); int bitmapheight = bitmap.getheight (); // Obtenez le rapport de largeur d'image Float num = mscreenwidth / (float) bitmapWidth; Matrix matrix = new Matrix (); Matrix.PostScale (num, num); // Générez l'objet bitmap à l'échelle bitmap bitmap resizebitmap = bitmap.createbitmap (bitmap, 0, 0, bitmapWidth, bitmapheight, matrix, true);
Le code ci-dessus est divisé en étapes suivantes
1. Obtenez la résolution de l'écran.
2. Obtenez l'image et mesurez la largeur et la hauteur de l'image.
3. Obtenez le rapport de zoom correspondant à travers la largeur de l'écran / largeur d'image
4. Créez un objet matriciel et déterminez la mise à l'échelle. (PS: cette chose est très agréable, et l'objet est également utilisé pour le modifier dans la couleur du gradient à l'avant)
5. Générez l'image via la méthode bitmap.createBitmap (). (PS: le dernier paramètre doit être passé vrai. Si false est passé, l'image zoomée ne sera pas affichée clairement)
Ce qui précède est une introduction aux opérations liées au traitement de l'image Java, j'espère qu'elle sera utile à l'apprentissage de chacun.