2010-09-10 15 views
5

Quiero utilizar un botón en mi aplicación de Android, pero quiero personalizar su apariencia. Sin embargo, quiero que el resaltado y los colores seleccionados del botón sean los mismos que los colores predeterminados (es decir, los degradados de naranja oscuro y claro, o cualquiera que sea el color del tema).Android: Use los colores de resaltado predeterminados en un botón personalizado

¿Hay alguna forma de obtener los elementos seleccionables resaltados/seleccionados y usarlos como relleno para mis botones en los estados seleccionado y resaltado?

Gracias!

Respuesta

3

Usted está pidiendo dos cosas diferentes, ¿quiere los dibujables o el código de color?

De todos modos, se puede encontrar el nombre de los dibujables aquí: http://androiddrawableexplorer.appspot.com/ no sé si se puede usar directamente desde su aplicación o si hay que guardarlos en su carpeta dibujables principio, pero usted puede encontrarlos en tu sdk. Si desea los códigos de colores, use gimp para extraerlos de las imágenes.

+0

Supongo que quiero el código de color, con el que puedo crear mi propio dibujable. Básicamente, quiero asegurarme de que mi color resaltado/seleccionado sea siempre coherente en cada dispositivo. Así que no quiero codificar en el color naranja ya que esto puede cambiar en el futuro y algunos dispositivos usan un color diferente. Más bien me gustaría tomar el código de color programáticamente. –

+0

Dado que Android usa códigos descartables y no códigos de color para sus botones, no podrá obtener el código de color de ninguna manera programáticamente razonable. Bueno, estoy seguro de que hay una manera de alguna manera, pero no creo que valga la pena. – softarn

+0

ok ... gotcha ... así que solo necesito saber cómo acceder al dibujante que contiene los colores de selección/resaltado predeterminados .... –

0

Selectors son lo que estás buscando. Busca tutoriales en Google. Aquí está one.

I Supongo que puede encontrar el selector predeterminado en el código fuente de Android.

+10

¿Hay alguna manera de agarrar el color predeterminado del selector mediante programación? –

3

¡Parece que puede usar un selector como dibujable dentro de un selector! (Puede o no debe usar @android:drawable/btn_default_selected, porque es privado) Esto significa que puede escribir su propio selecter y usar el selector android completo para los elementos para los que desea el comportamiento predeterminado.

que utiliza este selector

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

    <item android:drawable="@android:drawable/btn_default" android:state_pressed="true"/> 

</selector> 

y ha añadido que como fondo para un diseño lineal. no sé por qué, pero esta en mal estado el relleno/margen, así, es por eso que los puse a 0.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/background_linear_layout_button" 
    android:padding="0dp" 
    android:layout_margin="0dp" 
    android:orientation="vertical" > 

    <!-- YOUR LAYOUT THAT ACTS LIKE A BUTTON --> 
</LinearLayout> 

El resultado es que usted tiene el color de fondo de los padres en el estado sin prensar y la color de fondo de Android para el estado de prensado.

Cuestiones relacionadas