Bild nicht in der Benutzeroberfläche angezeigt
-
27-10-2019 - |
Frage
Ich habe ein Bild in den 3 Ordnern res/Drawable-HDPI/MDPI/LDPI 600*600 als Auflösung) und ich habe diese XML-Datei, um eine Textansicht und das Bild anzuzeigen:
<?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>
Was könnte BR das Problem? Danke für Ihre Hilfe.
Lösung
Das Hauptproblem ist Ihr erster Tag in der 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"
/>
Seit layout_height
ist eingestellt auf fill_parent
Diese Textansicht füllt die Linearlayout vertikal und lässt keinen Raum für das Bild. Versuchen Sie zu wechseln layout_height
zu wrap_content
.
Auch ein paar andere Dinge:
- Sie verwenden
android:layout_below="@id/sipLabel"
, aber das funktioniert nur in einem RelATivalout. Dieses Attribut wird also stillschweigend ignoriert. - Während Sie alle auswählen können
layout_weight
Sie wollen,0.35
ist ziemlich willkürlich. Da es das einzige Kind im Linearlayout mit Gewicht ist, erhält es den gesamten zusätzlichen vertikalen Raum. - Sie müssen die nicht einbeziehen
xmlns:android="http://schemas.android.com/apk/res/android"
Auf Ihrem TextView -Tag.
Andere Tipps
Ich finde layout_below
gilt nur für Relativalayouts. Auch dass layout_weight="0.35"
Sieht mächtig verdächtig aus, ich denke nicht, dass es das bedeutet, was Sie denken, dass es bedeutet. Ich denke, es muss einen ganzzahligen Wert haben.
Da dein TextView
hat eine Höhe von fill-parent
, und die LinearLayout
scrollt nicht ScrollView
Sie können die unteren Teile nicht sehen), Ihre TextView
nimmt den gesamten Bildschirm der Aktivität und die an ImageView
Darunter ist nicht sichtbar.
So können Sie entweder
- Setzen Sie Ihr Ganze
LinearLayout
in einScrollView
, und scrollen Sie nach unten, um Ihr Bild zu sehen oder - Wenn Ihr Ziel es ist, das Bild am unteren Rand des Bildschirms anzuzeigen, und der gesamte Ort darüber ist das angenommen werden
TextView
, Dann wäre ein RelATivalout die beste Option.
Aktualisieren
ein Arbeiten RelativeLayout
Soulution wäre sein
<?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>