ImageView внутри LinearLayout по умолчанию имеет поля по бокам - PullRequest
0 голосов
/ 12 февраля 2019

Мне интересно, но я все еще не могу найти проблему.

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    <FrameLayout
            android:background="@color/colorPrimary"
            android:layout_width="match_parent"
            android:layout_height="48dp"/>

    <ImageView
            android:src="@drawable/someImage"
            android:id="@+id/kioskModeImageView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>

</LinearLayout>

Для приведенной выше структуры мой ImageView сокращается по бокам иу меня есть странные поля слева и справа, из которых я не знаю, откуда они.

Когда я удаляю FrameLayout из LinearLayout (и имею ImageView только как одно целое) в контейнере, все работает как ожидалось- изображение занимает все место, так как match_parent должен работать

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    <ImageView
            android:src="@drawable/customer_dark_1"
            android:id="@+id/kioskModeImageView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>

</LinearLayout>

Что вызывает эту проблему?

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

В вашем случае match_parent match_parent не работает на изображении с FrameLayout.Вам нужно добавить layout_weight и установить layout_height="0dp", чтобы оно выглядело ожидаемым

<LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    <FrameLayout
            android:background="@color/colorPrimary"
            android:layout_width="match_parent"
            android:layout_height="48dp"/>

    <ImageView
            android:src="@drawable/someImage"
            android:id="@+id/kioskModeImageView"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1" />

</LinearLayout>

Также в этой статье рассказывается о ImageView scaleType:

https://thoughtbot.com/blog/android-imageview-scaletype-a-visual-guide

0 голосов
/ 12 февраля 2019

Вы не установили scaleType для вашего изображения, попробуйте установить android:scaleType="fitXY" есть другие значения для scaleType, попробуйте использовать то, которое соответствует вашим требованиям.

...