1

Я пытаюсь использовать RelativeLayout, чтобы сделать изображение над другим, но ненужное пустое пространство появляется.Пустое место в RelativeLayout

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="#263238" 
android:orientation="vertical"> 

<RelativeLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:paddingLeft="12dp" 
    android:paddingRight="12dp" 
    android:paddingTop="12dp" 
    android:gravity="top"> 

    <ImageView 
     android:id="@+id/heroImage" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/test3" 
     android:layout_alignParentTop="true" 
     android:scaleType="fitStart" /> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentEnd="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:src="@drawable/corner" /> 

</RelativeLayout> 
<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#FFF" 
    android:id="@+id/linearlayout_hero"> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Hero Appearance"/> 
</LinearLayout> 

Вы можете увидеть его между изображением Wolverine и текста.

+0

Можете ли вы определить, что вы имеете в виду под «ненужным пустым пространством»? Вы предоставили 12dp отступов, и ваше изображение отличается от формата, чем рамка, в которой он будет находиться. Единственный способ разместить изображение в пространстве - растянуть его или закрепить левую и правую стороны. –

ответ

3

Добавьте это в ImageView

android:scaleType="fitStart" 
android:adjustViewBounds="true" 
+0

. Он растягивает изображение по пространству, но мне нужно, чтобы изображение оставалось квадратным. –

+0

Как вы думаете, изображение должно появиться? Обрезая левую и правую стороны? –

+0

в этом случае вы можете использовать фрейм-макет, в вашем случае изображение имеет пробелы по бокам, поэтому вам нужно либо удалить эти пробелы, либо использовать макет фрейма – Aakash

0

заменить вам нижнюю линейную компоновку с этим блоком

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1" 
    android:background="#FFF" 
    android:id="@+id/linearlayout_hero"> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Hero Appearance"/> 
</LinearLayout> 
+0

@ Ravie Gadipudi, я должен просто изменить свой код с твоим? Если да, это не помогает :( –

+0

Извините, но я не тестировал. Нет правильных изображений для тестирования –

0

Вы можете поместить LinearLayout внутри RelativeLayout так:

<LinearLayout 
     android:id="@+id/linearlayout_hero" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_below="@+id/heroImage" 
     android:background="#FFF"> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Hero Appearance" /> 
    </LinearLayout> 
0

Я пытаюсь ответить на ваш вопрос.

Я думаю, это потому, что ваше изображение (герой/угол) имеет пустое место внизу, потому что ширина RelativeLayout равна ширине, а RelativeLayout устанавливается на изображения.

Пожалуйста, проверьте свое изображение :)