2015-11-21 12 views
5

私はAndroidボタンを作成しています。次のXMLを使用しています。Android Button Border Color

デザインのプレビューの出力は、以下のとおりです。 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

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

それは 'サムスン' ...アンドロイドのテーマをカスタマイズする...私は知らない。透明に設定すると助けになるかどうか確認してください –

+0

XMLを変更できますか? @android:colorを2回使用するとエラーが発生します。 –

6

が、私は通常、このような何かを、あなたのshape要素に子要素として<solid android:color="@android:color/transparent" />を追加!

これをすべて1つの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 :) –