2012-08-08 21 views
6

Quiero usar el siguiente selector de botón:botón selector de fondo Android

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

Pero no funciona. Quiero hacer botones con esquinas redondas y un 10% de tamaño pequeño con el mismo dibujo. En realidad, quiero dar un efecto de botón presionado con Drawable simple. ¿Es posible?

Respuesta

14

Encuentro que es mejor separar la lógica de estado y el código dibujable. A partir de los documentos 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> 

Me entonces se dará a las esquinas redondeadas en un XML dibujable separada. No estoy seguro si puedes incluso hacer tales cosas directamente en un selector.