J'ai un ensemble Imageview avec un fond blanc et un remplissage de 1dp, cela crée un effet de type bordure, qui correspond au résultat souhaité.
Maintenant, si je règle scaleType sur centerCrop, le remplissage en haut et en bas est ignoré.
J'ai donc toujours ma bordure à gauche et à droite, mais pas en haut et en bas.
Quelqu'un a-t-il une idée pour empêcher que cela ne se produise? Ou un autre moyen rapide de créer une bordure autour des images. Je l'utilise pour ma grille personnalisée
<ImageView
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:layout_weight="1"
Android:background="#FFFFFF"
Android:contentDescription="@string/test"
Android:padding="1dp"
Android:src="@drawable/some_photo"
Android:scaleType="centerCrop" />
<ImageView
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:layout_weight="1"
Android:contentDescription="@string/test"
Android:padding="1dp"
Android:src="@drawable/some_photo"
Android:cropToPadding="true"
Android:scaleType="centerCrop" />
Il vous suffit d'ajouter Android: cropToPadding
Android: cropToPadding = "true"
ensuite, l'imageView respectera le remplissage que vous aurez choisi.
Vous pouvez donner une bordure en définissant Android:background="@drawable/edit_border"
Et votre edit_border:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<stroke
Android:width="2dp"
Android:color="#EBDDE2" />
<padding
Android:bottom="2dp"
Android:left="2dp"
Android:right="2dp"
Android:top="4dp" />
<gradient
Android:centerColor="@color/white"
Android:endColor="@color/white"
Android:startColor="@color/white" />
<corners Android:radius="8dp" />
</shape>
La réponse de @Manolo Garcia est correcte. Cela m'a aidé dans la visualisation d'images dynamique en utilisant border, Rognage au centre du type d'échelle et le remplissage.
final ImageView imageView = new ImageView(context);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(200,200);
lp.setMargins(0, 0, 10, 0);
imageView.setLayoutParams(lp);
imageView.setAdjustViewBounds(true);
imageView.setCropToPadding(true);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setBackgroundResource(R.drawable.img_blue_border);
imageView.setPadding(5, 5, 5, 5);