Search code examples
androidxmleclipsebuttonborder

Border color on Android button


I have a button created and have set the background color and text color as can be seen below. My question is: how do I set the buttons border color? I want to set the border color to white

Here is the button in my res -> layout -> main_nav.xml

<Button 
        android:id="@+id/btn_emergency"
        style="@style/buttonStyle"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Contact and Emergency" 
        android:onClick="onClickHandleStates" />

And here is its associated style in res -> values -> styles. The first 2 "items" work fine on their own. The final "item" was my attempt at changing button border to white without success.

<!-- The button styles -->
<style name="buttonStyle">
    <item name="android:textColor">#ffffff</item>
    <item name="android:background">#80000000</item>

    <item name="android:button">
        <shape
            android:shape="rectangle" >
            <stroke
                android:width="0.5dp"
                android:color="#ffffff" />  
        </shape>
    </item>
</style>

Solution

  • Use the <stroke> element. Add this xml file in res/drawable folder as button_border.xml:

     <?xml version="1.0" encoding="utf-8"?>
      <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
        <gradient android:startColor="#FFFFFF" 
           android:endColor="#00FF00"
           android:angle="270" />
        <corners android:radius="3dp" />
        <stroke android:width="5px" android:color="#ffffff" />
     </shape>
    

    then call this by

    <Button
       android:id="@+id/button1"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_margin="10dp"
       android:background="@drawable/button_border"
       android:text="Button" 
    />