Изображение не отображается в пользовательском интерфейсе
-
27-10-2019 - |
Вопрос
У меня есть изображение в 3 папках Res/Draitable-HDPI/MDPI/LDPI 600*600 в качестве разрешения), и у меня есть этот XML-файл, чтобы показать текст и изображение:
<?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>
Что может BR проблема? Спасибо за помощь.
Решение
Основной проблемой является ваш первый тег в 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"
/>
С layout_height
установлен на fill_parent
Этот TextView заполняет линейный размер вертикально, не оставляя места для изображения. Попробуйте измениться layout_height
к wrap_content
.
Кроме того, пара других вещей:
- Вы используете
android:layout_below="@id/sipLabel"
, но это работает только в RelativeLayout. Так что этот атрибут молча игнорируется. - Пока вы можете выбрать любой
layout_weight
ты хочешь,0.35
довольно произвольный. Поскольку это единственный ребенок в Linearlayout с весом, он получит все дополнительное вертикальное пространство. - Вам не нужно включать
xmlns:android="http://schemas.android.com/apk/res/android"
на вашем теге TextView.
Другие советы
Я думаю layout_below
Применяется только к RelatiVelayouts. Также это layout_weight="0.35"
Похоже, я не думаю, что это означает, что вы думаете, что это значит. Я думаю, что это должно иметь целочисленную ценность.
С тех пор, как ты TextView
имеет высоту fill-parent
, и LinearLayout
не прокрутка (если не помещен в ScrollView
Вы не можете видеть нижние детали), ваш TextView
занимает весь экран деятельности и ImageView
Быть под этим не видно.
Так что вы можете либо
- Поместите все свое
LinearLayout
в аScrollView
, и прокрутите вниз, чтобы увидеть ваше изображение, или - Если ваша цель состоит в том, чтобы показать изображение внизу экрана, и все место над ним следует воспринимать
TextView
, тогда лучший вариант будет лучшим вариантом.
Обновлять
работа RelativeLayout
Духуция будет
<?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>