Android: Uso de alignBaseline para una imagen que sigue al texto

A continuación se muestra un TextView seguido por un ImageView contenido en RelativeLayout. Estoy tratando de obtener la parte inferior de la imagen para alinear con la línea de base del texto. Cuando utilizo alignBaseline para la imagen, haga referencia a TextView, es la parte superior de la imagen que se alinea con la línea de base del texto en lugar de la parte inferior. ¿Cómo puedo arreglar esto?

<TextView android:id="@+id/month" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:text="feb" android:textSize="60px" android:typeface="serif" /> <ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:paddingLeft="15px" android:layout_toRightOf="@id/month" android:layout_alignBaseline="@id/month" android:src="@drawable/minicalimage" android:id="@+id/calimage" /> 

Desde API11 puedes simplemente usar android:baselineAlignBottom="true"

Antes de API11 puede sobrescribir getBaseLine() y devolver la altura de la imagen.

Yo era capaz de lograr lo que quería hacer. No utilicé alignBaseline, sólo arreglé el problema con relleno y cambiar el tamaño de la imagen. Algunos de los problemas que estaba teniendo surgió de tener una imagen demasiado grande y llenar el espacio indeseablemente. El código que usé para lograr lo que quería es a continuación:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingLeft="25px" android:paddingTop="30px" android:id="@+id/LinearLayout1"> <TextView android:id="@+id/month" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="feb" android:textSize="60px" android:typeface="serif" /> <ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_toRightOf="@id/month" android:layout_alignBottom="@id/month" android:paddingBottom="12px" android:src="@drawable/minicalimage" android:id="@+id/calimage" /> <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="2011" android:id="@+id/year" android:layout_toRightOf="@id/calimage" android:layout_alignBaseline="@id/month" android:typeface="serif" android:textSize="40px" /> </RelativeLayout> 

Este fue el resultado:
Encabezado de un calendario / planificador

Debe utilizar las dos líneas siguientes en su ImageView para alinear la parte inferior de la vista de imagen con la parte inferior de TextView siguiente:

  android:layout_alignBaseline="@+id/txtview" android:baselineAlignBottom="true" <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/txtview" ... /> <ImageView ... android:layout_toRightOf="@+id/txtview" android:layout_alignBaseline="@+id/txtview" android:baselineAlignBottom="true" ... /> </RelativeLayout> 

Me topé con un problema similar, y lo resolví simplemente evitando layout_alignBaseline completo, dependiendo de layout_alignBottom en layout_alignBottom lugar, que está disponible desde la API 1.

Utilicé una vista de texto en lugar de una vista de imagen y usé la nueva vista de texto dibujable para configurar la imagen y funcionó:

 <TextView android:id="@+id/month" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:text="feb" android:textSize="60px" android:typeface="serif" /> <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:paddingLeft="15px" android:layout_toRightOf="@id/month" android:layout_alignBaseline="@id/month" android:drawableRight="@drawable/minicalimage" android:id="@+id/calimage" /> 
 /** * Set whether to set the baseline of this view to the bottom of the view. * Setting this value overrides any calls to setBaseline. * * @param aligned If true, the image view will be baseline aligned with * based on its bottom edge. * * @attr ref android.R.styleable#ImageView_baselineAlignBottom */ public void setBaselineAlignBottom(boolean aligned) { if (mBaselineAlignBottom != aligned) { mBaselineAlignBottom = aligned; requestLayout(); } } 

Desea utilizar el atributo android: layout_alignBottom para alinear ImageView con la línea de base de otra vista.

En el ejemplo siguiente alineé el ImageView a otro TextView. He incluido el código para el ImageView, y no el TextView. Con el fin de alinear a la TextView sólo tendrá que incluir el id de la TextView.

Si ajusta el margen o el relleno, las vistas se desalinearán si el usuario cambia el tamaño del texto en su dispositivo.

Introduzca aquí la descripción de la imagen

 <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="?attr/selectableItemBackground"> <!-- additional code here --> <ImageView android:id="@+id/message_time_chevron_id" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@id/replies_username_id" android:layout_alignParentRight="true" android:clickable="true" android:src="@drawable/ic_chevron_right"/> <!-- additional code here --> </RelativeLayout> 
  • Estilo de texto de Android falta de luz, medio, delgado,
  • Edittext - cómo ocultar underbar
  • Obtener id de TextView en Fragmento de FragmentActivity en ViewPager
  • Visualización de un archivo MS Word en la vista (diga TextView) en Android
  • Cómo hacer un script Mongolian tradicional TextView en Android
  • Superposición de texto sobre la vista de imagen en android
  • Animación del tamaño de texto de TextView
  • La interfaz de usuario se actualiza cuando mi aplicación pierde el foco y recupera el foco. Tema extraño
  • El botón de clic no cambia el valor de vista de texto
  • ¿Cómo habilito la copia estándar para un TextView en Android?
  • Android enlaza sin primer carácter
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.