2015-11-16 3 views
3

Я прочитал несколько руководств, но все, что у меня было в состоянии , достигли границы с одной стороны или с обеих сторон с того же цвета. Я пытаюсь создать стиль, который будет применять границу в верхней части с другим цветом и шириной, чем нижняя граница.android border bottom bottom с различными цветами/шириной

Так что я хочу иметь границу с 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> 
+0

Привет, этот код очень умный взломать, чтобы иметь разницу ширины на некоторых границах (вы просто рисуете пару фигур друг над другом). Хорошо сделано +1 от меня – Sniper

ответ

4

Это немного грязно, но это работает :).

Вашей вытяжка Layer-List:

<?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> 

И наконец Dimens:

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

В моем примере у меня есть 3 прямоугольника, которые установили правильные «поля». Каждый из моих прямоугольников меньше этого и закрывает его. Согласно моему решению, вы можете создать 4 разных такта для каждой стороны вашей основной фигуры.

+0

Спасибо, что работает. Но я пошел вперед с другим решением. – Ryan