2015-11-21 317 views
5

我正在使用以下XML製作Android按鈕。Android按鈕邊框顏色

預覽設計的輸出如下所示。 enter image description here

但是,當我運行在設備,三星二重奏。它顯示完全不同。 enter image description here

如何設置邊框。

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle" > 

    <stroke 
     android:width="3dp" 
     android:color="#d78d79" /> 

</shape> 

我也收到了XML錯誤,但它的工作正常。當鼠標懸停在錯誤上時沒有顯示。

enter image description here

任何一個可以幫助?

+0

顯示'@ drawable/button_border'內容 –

回答

9

添加<solid android:color="@android:color/transparent" />作爲一個子元素在你的shape元素

<?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" /> 
    <stroke 
     android:width="3dp" 
     android:color="#d78d79" /> 

</shape> 
+0

爲什麼設計和設備有所不同? –

+0

這是'三星'...定製Android主題...我不知道。請檢查將其設置爲透明將有助於 –

+0

您可以更改XML嗎?如果我使用@android:color兩次,那麼會收到錯誤。 –

6

我平時做這樣的事!

你可以在一個XML中完成所有這些工作,但是我將展示你更好地理解的很長一段路。

simple_button.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item 
     android:state_pressed="true" 
     android:drawable="@drawable/button_pressed"/> 

    <item 
     android:state_enabled="false" 
     android:drawable="@drawable/button_disabled"/> 
    <item 
     android:state_enabled="true" 
     android:drawable="@drawable/button_enabled"/> 

</selector> 

button_pressed.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <corners android:radius="2dp" /> 
    <solid android:color="#20FF5252" /> 
    <padding 
     android:bottom="0dp" 
     android:left="0dp" 
     android:right="0dp" 
     android:top="0dp" /> 
    <size 
     android:width="100dp" 
     android:height="35dp" /> 
    <stroke 
     android:width="1dp" 
     android:color="#1DE9B6" /> 
</shape> 

button_disabled.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > 
    <corners 
     android:radius="14dp" 
     /> 
    <solid 
     android:color="@android:color/transparent" 
     /> 
    <padding 
     android:left="0dp" 
     android:top="0dp" 
     android:right="0dp" 
     android:bottom="0dp" 
     /> 
    <stroke 
     android:width="8dp" 
     android:color="#1DE9B6" 
     /> 
</shape> 

button_enabled.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > 
    <corners 
     android:radius="2dp" 
    /> 
    <solid 
     android:color="@android:color/transparent" 
    /> 
    <padding 
     android:left="0dp" 
     android:top="0dp" 
     android:right="0dp" 
     android:bottom="0dp" 
    /> 
    <size 
     android:width="260dp" 
     android:height="50dp" 
    /> 

    <stroke 
     android:width="1dp" 
     android:color="#1DE9B6" 
    /> 
</shape> 

styles.xml

<style name="Widget.Button.Simple" parent="android:Widget"> 
     <item name="android:gravity">center_vertical|center_horizontal</item> 
     <item name="android:background">@drawable/simple_button</item> 
     <item name="android:textAppearance">?android:textAppearanceMedium</item> 
     <item name="android:textColor">#1DE9B6</item> 
     <item name="android:textStyle">bold</item> 

    </style> 

使用

<Button 
     android:id="@+id/btn_simple" 
     style="@style/Widget.Button.Simple" 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     android:layout_margin="20dp" 
     android:text="Button" /> 

我希望它能幫助!

+1

好辦法! Upvote :) –