默认情况下,LinearLayout中的ImageView的边距为

时间:2019-02-12 09:30:22

标签: android android-layout android-linearlayout android-imageview

我想知道,但仍然找不到问题。

<?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的侧面被缩短了,并且左右两侧有一些奇怪的边距,我不知道它们来自何处。

当我从容器中的LinearLayout中移除FrameLayout(并且仅将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 :(得分:0)

您尚未将scaleType设置为您的图像视图,请尝试设置android:scaleType="fitXY"的scaleType还有其他值,请尝试使用适合您要求的值。

答案 1 :(得分:0)

在您的情况下,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