Estoy cargando la navegación desde un sitio web, donde cada elemento tiene un título, una descripción y una imagen. Quiero tener todos los títulos y descripciones centrados en el mismo eje.Establecer el ancho máximo de ImageView como porcentaje del ancho de su matriz
Estoy usando el siguiente diseño para cada elemento en un ListView. Funciona bien cuando las imágenes son la mitad de ancho que altas, pero no si son más anchas: el texto va debajo de la imagen.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:orientation="horizontal">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
<TextView
android:layout_height="wrap_content"
android:textSize="10pt"
android:id="@+id/title"
android:gravity="center_horizontal"
android:layout_width="fill_parent" />
<TextView
android:layout_height="wrap_content"
android:id="@+id/description"
android:layout_width="fill_parent"
android:gravity="center_horizontal" />
</LinearLayout>
<View
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:layout_weight="3" />
</LinearLayout>
<ImageView
android:id="@+id/icon"
android:adjustViewBounds="true"
android:layout_width="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_height="wrap_content" />
</RelativeLayout>
¿Es posible forzar la imagen para permanecer en el 25% del ancho de la RelativeLayout o menos?
Creo que esto debe ser LinearLayout.LayoutParams, y el 0.25 debe ser 0.25f para funcionar. – thomas88wp
@ thomas88wp Obviamente, este código requiere la importación de LinearLayout.LayoutParams. Además, 0.25 y 0.25f son lo mismo en Java debido al punto decimal. – Emmanuel
perdón por aclarar el punto, pero en java '0.25' es un doble literal, y '0.25f' es un literal flotante. Si un parámetro requiere un flotante (como en este caso), no se compilará si lo pasa un doble (aunque al revés funciona, ya que el flotante se puede convertir implícitamente en un doble pero no al revés). Para demostrar, intente compilar 'public void foo (barra flotante) {foo (0.5); } '- no funcionará hasta que agregue la 'f'. – thomas88wp