setscaletype centerinside android gridview imageview border

android - setscaletype - centerinside



ImageView ScaleType ignora el relleno (4)

Tengo un conjunto de imágenes con un fondo blanco y un relleno de 1dp, esto crea un efecto de borde, que es el resultado deseado.

Ahora si configuro scaleType en centerCrop, ignora el relleno en la parte superior e inferior.
Así que todavía tengo mi borde en el lado izquierdo y derecho, pero no en la parte superior e inferior.

¿Alguien con una idea para evitar que esto suceda? U otra forma rápida de crear un borde alrededor de las imágenes. Lo uso para mi gridview personalizada

<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" />


Acabo de encontrar el mismo problema, porque mi solución será agregar el android: layout_marginRight = "5dip"

<ImageView android:layout_width="40dp" android:layout_height="30dp" android:background="#ffffffff" android:src="@drawable/liveview_logo" android:layout_marginRight="5dip"/>


La respuesta de @Manolo Garcia es correcta. Eso me ayudó en la vista de imagen dinámica usando borde, Scale Type Center Crop y relleno.

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);


Puede dar borde configurando android:background="@drawable/edit_border"

Y tu 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>


<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" />

Solo necesitas agregar android:cropToPadding

android: cropToPadding = "true"

y luego el imageView respetará el relleno que elijas.