Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


ImageView que es un tamaño fijo, independientemente del tamaño de la imagen

Tengo un ImageView que quiero siempre ser del mismo tamaño. Si la imagen es más pequeña que la vista, me gustaría que estuviera centrada en la vista. Si la imagen es más grande que la vista, entonces me gustaría que se redujera – con la relación de aspecto preservado.

He tenido varios intentos en esto yo mismo – la última de las cuales es:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ImageView android:id="@+id/itemImage" android:layout_width="100dp" android:layout_height="100dp" android:scaleType="fitCenter" android:adjustViewBounds="true" android:gravity="center" android:padding="10px" /> <TextView android:id="@+id/currentLentItem" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10px"/> </LinearLayout> 

¿Que me estoy perdiendo aqui?

2 Solutions collect form web for “ImageView que es un tamaño fijo, independientemente del tamaño de la imagen”

Trate de usar el tipo de escala centerInside , como a continuación:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" > <ImageView android:id="@+id/itemImage" android:layout_width="100dp" android:layout_height="100dp" android:layout_alignParentRight="true" android:scaleType="centerInside" android:gravity="right|center_vertical" android:padding="10px" /> <TextView android:id="@+id/currentLentItem" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_toLeftOf="@id/list_image" android:padding="10px" /> </RelativeLayout> 

Esto hace que la imagen se reduzca sólo si es mayor que el diseño, y se escalará proporcionalmente también (mientras que fitXY escalas sin tener en cuenta la relación de aspecto). También centrará la imagen si es más pequeña.

EDIT: He actualizado el ejemplo para algo como usted está deseando. Aquí está la esencia de lo que cambió:

• La gravedad ImageView cambió a right|center_vertical . Puesto que usted quiere que se alineen a la derecha, el uso de esta gravedad permitirá que incluso si son imágenes de orientación vertical.

• ImageView alineado a la derecha de RelativeLayout

• RelativeLayout establecido en wrap_content ya que se va a utilizar para un ListView.

• TextView añadido, alineado a la izquierda de los padres, con su borde derecho definido por el borde izquierdo de itemImage.

Si la imagen es más grande que la vista, puede escalarla usando:

 android:scaleType="fitXY" 

Eso no le dará lo que quiere si la imagen es más pequeña. Tal vez usted podría detectar que en tiempo de ejecución y cambiar el scaleType programaticamente.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.