2012-08-08 9 views
6

voglio usare il seguente selettore per il tasto:pulsante di Android di selezione sfondo

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

    <item android:drawable="@drawable/jobs" android:state_pressed="true"> 
     <shape android:shape="rectangle"> 
      <corners android:radius="5dp" /> 
     </shape> 
<scale android:scaleHeight="90%" android:scaleWidth="90%" /> 
    </item> 
    <item android:drawable="@drawable/jobs"></item> 

</selector> 

Ma non funziona. Voglio rendere i pulsanti arrotondati e il 10% di dimensioni ridotte con lo stesso disegno. In realtà voglio dare un effetto pulsante premuto usando un singolo drawable. È possibile?

risposta

14

Trovo che sia meglio separare la logica di stato e il codice estraibile. Dalla documentazione Android: http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" 
      android:drawable="@drawable/button_pressed" /> <!-- pressed --> 
    <item android:state_focused="true" 
      android:drawable="@drawable/button_focused" /> <!-- focused --> 
    <item android:state_hovered="true" 
      android:drawable="@drawable/button_focused" /> <!-- hovered --> 
    <item android:drawable="@drawable/button_normal" /> <!-- default --> 
</selector> 

Vorrei poi mettere il codice per dare angoli arrotondati in un XML disegnabile separata. Non sono sicuro che tu possa persino fare cose del genere direttamente in uno selector.