了解Android的(Understanding Android's <layer-l

2019-07-18 12:10发布

我不明白的层列表是如何工作的。 我读了官方的一些实例文档,但像预期它不会为我工作。 我想这应该1DP补齐四个方格,但像预期什么。 这里是由500%缩放的屏幕截图:


(错误的颜色并不重要)
正如你所看到的大小是完全错误的和补白失踪。 我试图设置类似宽度/高度和左/右/上/ BUTTOM实际值,以确保机器人得到我想要的地步。

这里是我的xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:top="0dp" android:left="0dp" android:bottom="0dp" android:right="0dp">
        <shape android:shape="rectangle">
            <size android:width="9dp"
                android:height="9dp"/>
            <solid android:color="#f000"/>
        </shape>
    </item>

    <item android:top="1dp" android:left="1dp" android:bottom="5dp" android:right="5dp">
        <shape android:shape="rectangle">
            <size android:width="3dp"
                android:height="3dp"/>
            <solid android:color="#f00"/>
        </shape>
    </item>
    <item android:top="1dp" android:left="5dp" android:bottom="5dp" android:right="1dp">
        <shape android:shape="rectangle">
            <size android:width="3dp"
                android:height="3dp"/>
            <solid android:color="#0f0"/>
        </shape>
    </item>

    <item android:top="5dp" android:left="1dp" android:bottom="1dp" android:right="5dp">
        <shape android:shape="rectangle">
            <size android:width="3dp"
                android:height="3dp"/>
            <solid android:color="#0f0"/>
        </shape>
    </item>
    <item android:top="5dp" android:left="5dp" android:bottom="1dp" android:right="1dp">
        <shape android:shape="rectangle">
            <size android:width="3dp"
                android:height="3dp"/>
            <solid android:color="#f00"/>
        </shape>
    </item>
</layer-list>

Answer 1:

对于左,上,右和底部的值是从它们各自的边缘测量。

所以,离开= 0dp,顶部= 0dp,底部= 0dp,右= 50dp会给你一个矩形是(match_parent - 50dp),宽不宽50dp。 为“右”,因此较大的值,实际上给你一个小矩形。

这同样适用于其他的价值,但预期在大多数情况下,这些会表现,它只是“权利”这可能会引起混淆。



Answer 2:

无论您使用px ,而不是dp或乘的所有尺寸10

我羞于承认,我完全不知道为什么会这样,但我的猜测是,它是与密度,其中1dp是一个浮动的px值和ImageView被放大。

专家的回答是欢迎:)



文章来源: Understanding Android's