4
我正在嘗試自定義我的按鈕的外觀。 問題是,該按鈕不想更改其形狀。這意味着它仍然是尖銳的,而不是橢圓形。按鈕不會在選擇器中更改其形狀
button_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@color/green_bright">
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="8dp"/>
<stroke android:color="@color/green_primary"/>
<padding android:bottom="4dp" android:left="4dp" android:right="4dp" android:top="4dp"/>
</shape>
</item>
<item android:drawable="@color/green">
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="8dp"/>
<stroke android:color="@color/green_primary"/>
<padding android:bottom="4dp" android:left="4dp" android:right="4dp" android:top="4dp"/>
</shape>
</item>
</selector>
my_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:orientation="vertical">
<Button android:id="@+id/button_id"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="@string/button_text"
android:textColor="@color/grey_dark"
android:background="@drawable/button_selector"/>
</LinearLayout>
解決
問題是,我declarated 繪製我n側項
<item android:drawable="@color/..."/>
這組固定的背景,它使背景不變,因此沒有形狀可以改變按鈕的屬性。背景顏色設置爲。
<solid android:color="@color/blue"/>
重要!您可以使用可繪製的,而不是顏色,但不是所有您純色必須繪製如下
<solid android:drawable="@color/blue"/>
更正button_selector.xml。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape android:shape="rectangle">
<solid
android:color="@color/blue_bright"/>
<corners
android:radius="20dp"/>
<stroke
android:color="@color/blue_primary"
android:width="2dp"/>
<padding
android:bottom="4dp" android:left="4dp" android:right="4dp" android:top="4dp"/>
</shape>
</item>
<item>
<shape android:shape="rectangle">
<solid
android:color="@color/blue"/>
<corners
android:radius="20dp"/>
<stroke
android:color="@color/blue_primary"
android:width="2dp"/>
<padding
android:bottom="4dp" android:left="4dp" android:right="4dp" android:top="4dp"/>
</shape>
</item>
</selector>
這也是revelant,你可以用你的照片裏面扣不僅僅是把它放在:
<Button>
...
android:src="@drawable/myPicture"
</Button>
沒有什麼變化。所以..背景顏色工作正常,但形狀保持不變。 我已經添加了'',但是這已經改變了一切。我甚至猜不出銀彈可以在哪裏。 –
murt
你是什麼意思的形狀保持不變(沒有圓角)? 將半徑增加到更高的值,比如20dp。 <角落android:半徑=「20dp」/> – Manish
我的意思是形狀保持鋒利/矩形。增加半徑不起作用。你認爲這個錯誤在_ @ drawable/button_selector_之外的某個地方? – murt