XML drawable在4.3和4.1.2上具有不同的行为

时间:2013-09-17 14:31:26

标签: android android-drawable xml-drawable

我有下面的抽奖,

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <corners android:radius="3dp"/>
    <padding android:left="1dp" android:right="1dp" android:top="1dp" android:bottom="1dp"/>
     <stroke android:width="1dp" android:color="#e4e4e4"/>

</shape>

“它应该”在背景上设置时绘制边框,实际上(Android 4.3 / goole nexus 7)确实如此,但不幸的是(Android 4.1.2 /三星galaxy tab 10“)它只填充所有背景用颜色

如果有人可以告诉我我做错了什么,或者有人有一个xml drawable for border, 我将非常感激:=)

2 个答案:

答案 0 :(得分:19)

这是具有相同可绘制的解决方案

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <solid android:color="@android:color/transparent" />
    <corners android:radius="3dp"/>
    <stroke android:width="1dip" android:color="#e2e2e2"/>
</shape>

我只需要指定纯色:

 <solid android:color="@android:color/transparent" />

答案 1 :(得分:1)

边框drawable的代码,在两个版本上都能更好地运行:

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

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- This is the line -->
    <item android:top="1px" android:right="1px" android:left="1px" android:bottom="1px">
      <shape>
            <solid android:color="@android:color/transparent" />
            <corners android:radius="3dp"/>
            <stroke android:width="1px" android:color="#e4e4e4" />
      </shape>
    </item>

</layer-list>