2012-08-08 18 views
6

Ich mag folgenden Selektor für Taste verwenden:Android-Taste Hintergrund Wähler

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

Aber es funktioniert nicht. Ich möchte die Knöpfe Ecken rund und 10% klein mit dem gleichen Zeichen machen. Eigentlich möchte ich einen Button-gedrückten Effekt mit Single Drawable geben. Ist es möglich?

Antwort

14

Ich finde es am besten, die Zustandslogik und Zeichencode zu trennen. Aus dem Android docs: 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> 

würde ich lege den Code dann abgerundete Ecken in einem separaten XML ziehbar zu geben. Ich bin nicht sicher, ob Sie solche Dinge auch direkt in einer selector tun können.