Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android: How can I use the layer-list and shape elements to draw a horizontal rule when set as background?

Tags:

android

shapes

I want to set the background of a Relative or LinearLayout to a custom drawable. I want the shape to draw two horizontal lines across the bottom, leaving the central part transparent (empty).

The following draws the horizontal lines centered vertically, where as I need them to be aligned to the bottom of the shape. (If you add a rectangle as an item you can see the shape expands to the dimenstions of the parent, but the lines are still centrally aligned).

<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >  <item>   <shape android:shape="line">       <stroke android:width="1dip" android:color="#99b8b9bd" />       <size android:height="1dip" />   </shape>  </item>  <item>   <shape android:shape="line" android:top="1dip">       <stroke android:width="1dip" android:color="#FFFFFFFF" />       <size android:height="1dip" />   </shape>  </item> </layer-list> 
like image 892
Emile Avatar asked Nov 10 '10 16:11

Emile


2 Answers

Found the answer before i'd finished asking about it.

<?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="@color/hr_bottom" />             <solid android:color="#00FF0000" />             <padding android:bottom="1dp"/>         </shape>    </item>     <item>       <shape          android:shape="rectangle">             <stroke android:width="1dp" android:color="@color/hr_top" />             <solid android:color="#00FF0000" />             <padding android:bottom="1dp"/>         </shape>    </item>      <item>       <shape          android:shape="rectangle">             <stroke android:width="1dp" android:color="#00000000" />             <solid android:color="#00000000" />         </shape>    </item>  </layer-list> 
like image 117
Emile Avatar answered Sep 20 '22 17:09

Emile


You can draw with below simple code also.

<item     android:right="-2dp"     android:bottom="-2dp"     >     <shape         android:shape="rectangle">          <stroke             android:width="0.5dp"             android:color="#ff0000"             android:dashGap="4dp"             android:dashWidth="4dp" />      </shape> </item> 

like image 22
Huy Tower Avatar answered Sep 21 '22 17:09

Huy Tower