XML dibujable compuesto de png y superposición
Tengo un botón png, que está habilitado, no presionado. Cuando el usuario hace clic en el botón, sólo quiero oscurecer el png. Necesito algo como esto:
<selector xmlns:android="http://schemas.android.com/apk/res/android" > //normal button with background my_button.png <item android:state_enabled="true" android:drawable="@drawable/my_button" //my_button.png /> //pressed button with background my_button.png overlayed by 50% black <item android:state_pressed="true" android:state_enabled="true" > <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <bitmap android:src="@drawable/my_button"/> <color android:color="#00000088"/> </RelativeLayout> </item> </selector>
¿Hay alguna manera de cómo hacer eso? ¿O debo tener otro archivo png?
- CheckBox no aparece en CheckedTextView
- Las guías de la API de Android son un poco confusas para mí sobre el atributo android: onClick XML
- Cómo acceder a colors.xml sin especificar el nombre del color o el ID del recurso (R.color.name)
- Android Eclipse todas las fuentes Spinner se convirtieron en blanco
- ¿Cómo establecer el valor de alfa / opacidad a color en xml dibujable?
- Android: mover el texto del botón a la parte inferior
- Color del borde en el botón de Android
- El botón no cambia su forma en el selector
- Cómo recuperar atributos de estilo mediante programación de styles.xml
- Quiero mostrar el idioma Reginonal (Gurumukhi) en mi aplicación para Android
- en negrita algunas palabras en el texto de xml
- Android - tema de los padres desaparecidos?
- Mostrar hilandero en AlertDialog
En my_button_bg.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/button_pressed" android:state_pressed="true"/> <item android:drawable="@drawable/button_normal"/> </selector>
Button_normal es un png
Button_pressed es un xml:
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable="@drawable/button_normal"/> <item android:drawable="@color/btn_bg_pressed_mask"/> </layer-list>
Donde btn_bg_pressed_mask es un color:
<color name="btn_bg_pressed_mask">#19000000</color>
Esto debería funcionar
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="true" android:drawable="@drawable/my_button" /> <item> <selector> <item android:state_pressed="true" android:state_enabled="true"> <color android:color="#00000088" /> </item> </selector> </item> </layer-list>
El orden de los elementos en el selector XML hace una diferencia. El primer partido es lo que se va a mostrar. Como se ve en la respuesta de marmor, el estado normal del botón aparece al final.
Otra cosa a tener en cuenta es que si está utilizando imágenes de 9 parches (.9png), el color sólo se aplicará al área de contenido. Así que si desea que el color se superponga en toda la imagen, asegúrese de marcar toda la imagen como el área de contenido.
- WebRTC llega a Android WebView? ¿Cuando?
- En playstore podemos tener dos aplicaciones con el mismo nombre con un paquete diferente – Android