2012-08-08 23 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.

Problemi correlati