android边框顶部底部有不同的颜色/宽度

时间:2015-11-16 20:30:14

标签: android border

我已经阅读了一些教程,但我能够做到 实现是一边或两边的边界 相同的颜色。 我试图创建一个应用边框的样式 在顶部,颜色和宽度不同于底部边框。

所以我希望顶部有2dp的边框,蓝色 和底部的3dp边框,红色。

这是我用来在顶部和底部应用边框的样式 但是我无法改变顶部或底部的颜色。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
      <shape 
        android:shape="rectangle">
            <stroke android:width="1dp" android:color="#FF000000" />
            <solid android:color="#FFDDDDDD" />

        </shape>
   </item>

   <item android:top="1dp" android:bottom="1dp"> 
      <shape 
        android:shape="rectangle">
            <stroke android:width="1dp" android:color="#FFDDDDDD" />
            <solid android:color="#00000000" />
        </shape>
   </item>

</layer-list>

1 个答案:

答案 0 :(得分:4)

它有点脏,但它有效:)。

您的Layer-List drawable:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <!-- TOP STROKE-->
    <item>
        <shape android:shape="rectangle">
            <solid android:color="@color/top_stroke_color" />

        </shape>
    </item>
    <!-- BOTTOM STROKE-->
    <item android:top="@dimen/top_stroke_width">
        <shape android:shape="rectangle">
            <solid android:color="@color/bottom_stroke_color" />
        </shape>
    </item>
    <!-- MAIN SHAPE -->
    <item android:top="@dimen/top_stroke_width" android:bottom="@dimen/bottom_stroke_width">
        <shape android:shape="rectangle">
            <solid android:color="@color/main" />
        </shape>
    </item>
</layer-list>

颜色定义:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="top_stroke_color">#0000FF</color>
    <color name="bottom_stroke_color">#FF0000</color>
    <color name="main">#00FF00</color>
</resources>

最后尺寸:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="top_stroke_width">10dp</dimen>
    <dimen name="bottom_stroke_width">20dp</dimen>
</resources>

在我的例子中,我有3个矩形,它们设置了正确的&#34;边距&#34;。我的每个矩形都比这个小,并覆盖它。根据我的解决方案,你可以为你的主要形状的每一面创造4个不同的笔划。