Domanda

Ho un'immagine nelle 3 cartelle Res/Drawable-HDPI/MDPI/LDPI 600*600 come risoluzione) e ho questo file XML per mostrare un TextView e l'immagine:

<?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>

Cosa potrebbe essere il problema? Grazie per l'aiuto.

È stato utile?

Soluzione

Il problema principale è il tuo primo tag in 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"
  />

Da layout_height è impostato per fill_parent Questo TextView sta riempiendo il linearlayout in verticale, non lasciando spazio all'immagine. Prova a cambiare layout_height a wrap_content.

Inoltre, un paio di altre cose:

  • Stai usando android:layout_below="@id/sipLabel", ma questo funziona solo in un relativeyout. Quindi questo attributo viene silenziosamente ignorato.
  • Mentre puoi sceglierne qualsiasi layout_weight tu vuoi, 0.35 è piuttosto arbitrario. Dal momento che è l'unico bambino nella Linearlayout con peso, riceverà tutto lo spazio verticale extra.
  • Non è necessario includere il xmlns:android="http://schemas.android.com/apk/res/android" Sul tuo tag TextView.

Altri suggerimenti

Penso layout_below si applica solo per le relativeyout. Anche questo layout_weight="0.35" Sembra potente sospetto, non penso che significhi ciò che pensi significhi. Penso che debba avere un valore intero.

Dal tuo TextView ha un'altezza di fill-parent, e il LinearLayout non sta scorrendo (a meno che non venga inserito in un ScrollView Non puoi vedere le parti inferiori), il tuo TextView riprende l'intero schermo dell'attività e il ImageView Essere sotto di esso non è visibile.

Quindi puoi

  • Metti tutto il tuo LinearLayout in unScrollView, e scorrere verso il basso per vedere la tua immagine, o
  • Se il tuo obiettivo è mostrare l'immagine nella parte inferiore dello schermo e l'intero posto sopra dovrebbe essere preso il TextView, quindi un relativeyout sarebbe l'opzione migliore.

Aggiornare
un lavoro RelativeLayout L'anima sarebbe

<?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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top