Android <;项目>;这不是我所期望的

Android <;项目>;这不是我所期望的,android,xml,offset,shapes,layer-list,Android,Xml,Offset,Shapes,Layer List,我有这个可绘制的XML文件。目标是绘制两个同心框架,外部为黄色,内部为红色。我希望所有这些都用XML完成,使用形状,而不是代码,也不使用位图 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item> <shape android:shape="rect

我有这个可绘制的XML文件。目标是绘制两个同心框架,外部为黄色,内部为红色。我希望所有这些都用XML完成,使用形状,而不是代码,也不使用位图

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item>
        <shape android:shape="rectangle">
            <solid android:color="@android:color/transparent"/>
            <stroke android:width="15dp" android:color="@color/Yellow"/>
        </shape>
    </item>

    <item android:left="5dp">
        <shape android:shape="rectangle">
            <solid android:color="@android:color/transparent"/>
            <stroke android:width="3dp" android:color="@color/Red"/>
        </shape>
    </item>

</layer-list>

这将生成此屏幕(忽略内部的3个矩形,仅限框架黄色和红色矩形)

这表明黄色帧绘制正常,红色帧绘制时有5dp左偏移。 我的最后一个红框应该是四面都有

    <item android:left="5dp" android:top="5dp" android:right="5dp" android:bottom="5dp">

看看当我只添加一个其他偏移量时会发生什么

    <item android:left="5dp" android:top="5dp">
        <shape android:shape="rectangle">
            <solid android:color="@android:color/transparent"/>
            <stroke android:width="3dp" android:color="@color/Red"/>
        </shape>
    </item>

如果我添加所有必需的偏移,也会发生同样的情况。 根据
这里发生了什么? 如何使红色边框按我所希望的那样缩小5 DP

编辑
我玩了一点偏移量,发现了一些奇怪的东西,使用一个负偏移量5dp,看看我得到了什么:

    <item android:left="-5dp" android:top="5dp" android:right="5dp" android:bottom="5dp">

它只适用于负值
5dp
它仍然不会像以前那样显示帧

我强烈认为,所有这些行为的原因只能是二分之一:

  • 我完全误解了应该如何使用偏移值
  • 这是一种错误行为(在这种情况下,我希望得到确认,以便报告)

你如何使用
图层列表
以及你在哪里测试/看到了所描述的行为(模拟器/特定手机/特定版本)?@Luksprog图层列表是
框架布局中
图像视图
元素的
android:background
。我的项目从min version 14到version 17进行定义,并在运行英特尔HAXM的AVD target android-15上执行。不幸的是,我的平板电脑几周前被偷了,现在我没有真正的设备来测试它。我无法重现这种行为(使用您的条件进行测试),所以我假设您的代码中还有其他内容。如果您可以提供一个简单的示例来复制该行为,请将其发布到此处,或者将其报告为bug。@Luksprog我从头开始创建了一个新项目,其中仅包含布局框架,并按预期工作。所以问题一定是在其他地方,我真正的项目要复杂得多,并且使用库,到处都是布局和代码,我必须确定是什么在我的设置中导致了这一点。如果我这样做了,我会把答案贴在这里。