Ho un bottone nel mio layout a cui ho applicato un stile:
1
2<Button
3android:id="@+id/btn_calc"
4android:text="@string/btn_calc"
5android:layout_width="fill_parent"
6android:layout_height="wrap_content"
7style="@style/special_button"
8/>
9
Lo stile è definito in un file style.xml (dove ho tutti gli altri stili):
51
2<style name="special_button" parent="@android:style/Widget.Button">
3<item name="android:background">@drawable/button</item>
4</style>
5
Lo stile fa riferimento a questo drawable/selector che imposta per gli stati del bottone degli altri drawable:
141
2
3<selector xmlns:android="http://schemas.android.com/apk/res/android">
4
5<item android:state_pressed="true"
6android:drawable="@drawable/button_pressed" />
7
8<item android:state_focused="true"
9android:drawable="@drawable/button_selected" />
10
11<item android:drawable="@drawable/button_normal" />
12
13</selector>
14
I singoli bottoni sono definiti a loro volta in questo modo (ne mostro solo 1, visto che gli altri sono simili, cambiano solo i colori):
221
2<shape xmlns:android="http://schemas.android.com/apk/res/android"
3android:shape="rectangle"
4>
5
6<solid android:color="@color/black"/>
7
8<stroke
9android:width="2dp"
10android:color="@color/gray"/>
11
12<padding
13android:top="8dp"
14android:bottom="8dp"
15android:left="5dp"
16android:right="5dp"/>
17
18<corners
19android:radius="3dp"
20/>
21</shape>
22
Però non funziona! Nell'applicazione vedo solo il testo del bottone, lo sfondo non c'è! Se invece di usare il selector nello stile applico direttamente uno degli stati del bottone invece lo stile compare, cioè facendo in questo modo:
51
2<style name="special_button" parent="@android:style/Widget.Button">
3<item name="android:background">@drawable/button_normal</item>
4</style>
5
...solo che così questo è applicato a tutti gli stati del bottone!
Tutti gli altri stili funzionano, solo i selector non mi vanno...
Dove sto sbagliando?