Imagen que no se muestra en la interfaz de usuario
-
27-10-2019 - |
Pregunta
Tengo una imagen en las 3 carpetas Res/Drawable-HDPI/MDPI/LDPI 600*600 como resolución) y tengo este archivo XML para mostrar un TextView y la imagen:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/sipLabel"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
<ImageView android:id="@+id/connected" android:src="@drawable/connected" android:layout_below="@id/sipLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_weight="0.35" android:gravity="center"
/>
</LinearLayout>
¿Qué podría BR el problema? Gracias por tu ayuda.
Solución
El problema principal es su primera etiqueta en el LinearLayout
:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/sipLabel"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
Ya que layout_height
se establece en fill_parent
Este TextView está llenando el LinealLayout verticalmente, sin dejar espacio para la imagen. Intenta cambiar layout_height
a wrap_content
.
Además, un par de otras cosas:
- Estás usando
android:layout_below="@id/sipLabel"
, pero esto solo funciona en un relativeLayout. Entonces este atributo está siendo ignorado en silencio. - Mientras pueda elegir cualquier
layout_weight
usted quiere,0.35
es bastante arbitrario. Dado que es el único niño en LinearLayout con peso, recibirá todo el espacio vertical adicional. - No necesitas incluir el
xmlns:android="http://schemas.android.com/apk/res/android"
En su etiqueta TextView.
Otros consejos
pienso layout_below
Solo se aplica para RelativeLayOuts. También eso layout_weight="0.35"
Parece muy sospechoso, no creo que signifique lo que crees que significa. Creo que debe tener un valor entero.
Ya que tu TextView
tiene una altura de fill-parent
, y el LinearLayout
no se desplaza (a menos que se ponga en un ScrollView
no puedes ver las partes inferiores), tu TextView
toma la pantalla completa de la actividad y el ImageView
estar debajo no es visible.
Para que tú puedas
- Pon tu todo
LinearLayout
en unScrollView
, y desplácese hacia abajo para ver su imagen, o - Si su objetivo es mostrar la imagen en la parte inferior de la pantalla, y todo el lugar de arriba debe tomarse el
TextView
, entonces un `RelativeLayout sería la mejor opción.
Actualizar
un trabajo RelativeLayout
Soulution sería
<?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="fill_parent">
<TextView android:id="@+id/sipLabel" android:text="@string/loremipsum1"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_alignParentTop="true" />
<ImageView android:id="@+id/connected" android:src="@drawable/connected"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_below="@id/sipLabel" android:layout_alignParentBottom="true" />
</RelativeLayout>