L'image n'apparaît dans l'interface utilisateur
-
27-10-2019 - |
Question
J'ai une image dans les 3 dossiers res / drawable-hdpi / mdpi / LDPI 600 * 600 en résolution) et j'ai ce fichier XML pour afficher un textview et l'image:
<?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'est-ce que le problème pourrait br? Nous vous remercions de votre aide.
La solution
La question principale est votre premier mot dans le 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"
/>
Depuis layout_height
est réglé sur fill_parent
ce TextView remplit le LinearLayout verticalement, ne laissant aucune place à l'image. Essayez de changer layout_height
à wrap_content
.
En outre, deux autres choses:
- Vous utilisez
android:layout_below="@id/sipLabel"
, mais cela ne fonctionne que dans un RelativeLayout. Donc, cet attribut est ignoré en silence. - Alors que vous pouvez choisir
layout_weight
que vous voulez,0.35
est assez arbitraire. Comme il est le seul enfant dans le LinearLayout avec le poids, il recevra tout l'espace vertical supplémentaire. - Vous n'avez pas besoin d'inclure la
xmlns:android="http://schemas.android.com/apk/res/android"
sur votre étiquette TextView.
Autres conseils
Je pense que layout_below
applique seulement pour RelativeLayouts. En outre, que layout_weight="0.35"
semble suspect puissant, je ne pense pas que cela signifie ce que vous pensez que cela signifie. Je pense qu'il doit avoir une valeur entière.
Étant donné que votre TextView
a une hauteur de fill-parent
et le LinearLayout
ne défile pas (sauf si est mis dans un ScrollView
vous ne pouvez pas voir les parties inférieures), votre TextView
prend tout l'écran de l'activité, et l'être ImageView
sous ce n'est pas visible.
Vous pouvez
- mettre toute votre
LinearLayout
enScrollView
et défilement vers le bas pour voir votre image ou - si votre objectif est de montrer l'image au
le bas de l'écran, et la
toute la place au-dessus doivent être prises
le
TextView
, alors `RelativeLayout serait le meilleur option.
Mise à jour
un travail RelativeLayout
Soulution serait
<?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>