studio redondo pulsarlo personalizar para imagen hacer funcionar efectos diseño dinamicos con color codigo cambiar botón botones boton android styles transparency z-order

redondo - efectos botones android studio



¿Cómo hacer un botón no transparente? (6)

El botón temático Holo estándar es parcialmente transparente. Puede crear un nuevo botón 9.png imagen para usar en el botón o crear un nuevo botón usando drawable.

Aquí hay un enlace sobre cómo hacer lo último:

http://droidapp.co.uk/?p=309

Escribí la vista personalizada que dibuja un círculo. Luego lo puse en un diseño relativo. También puse el botón estándar allí, para que se superpongan. Y veo que el botón es transparente. ¿Cómo hacerlo no transparente?


Estaba con el mismo problema pero con ToggleButton. Una solución fea pero rápida fue colocar un ImageView justo detrás del botón y cambiar su margin s, background y alpha para que se ajusten al botón. Por ejemplo, dentro de un RelativeLayout:

<ImageView android:layout_alignLeft="@+id/toggleButton" android:layout_alignBottom="@+id/toggleButton" android:layout_alignRight="@+id/toggleButton" android:layout_alignTop="@+id/toggleButton" style="@style/HackBackgroundToggleButton" /> <ToggleButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/toggleButton" ... />

Y, en un esfuerzo por reducir el hackeo visible, el estilo extraído:

<style name="HackBackgroundToggleButton"> <item name="android:layout_width">84dp</item> <item name="android:layout_height">42dp</item> <item name="android:background">#FFFFFF</item> <item name="android:layout_marginTop">4dp</item> <item name="android:layout_marginLeft">4dp</item> <item name="android:layout_marginRight">4dp</item> <item name="android:layout_marginBottom">4dp</item> <item name="android:alpha">0.75</item> </style>


La transparencia holo está realmente integrada en los archivos PNG. Así que la única manera real de cambiarlo es editar los PNG y hacerlos no transparentes. Esto no es realmente fácil en absoluto. Necesitas multiplicar el canal alfa de la imagen por 255/102. Lo que no es fácil!

Pero como soy un genio, encontré la manera de hacerlo. Básicamente copié todos los PNG y XML relevantes en su propia estructura de directorio (los botones solo tienen las -mdpi , -hdpi y -xhdpi ). Entonces me encontré con esto:

para ARCHIVO en find . -name *.png find . -name *.png ; mogrificar -evaluar Multiplicar 2.5 canales Alpha $ FILE; hecho

¡Trabajo hecho! En realidad, no funcionó bien con los botones desactivados por alguna razón, creo que porque el centro es súper transparente, pero no me importan mucho esos. Tendrá que usar un valor superior a 2.5 para esas imágenes si desea que sean totalmente no transparentes.

De todos modos el resultado está here .


guarde el código de abajo como xml en la carpeta dibujable y dé este xml como fondo de botón

<?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <stroke android:width="0dp" android:color="#ffffff" /> <solid android:color="#000000"/> <corners android:radius="1px"/> <padding android:left="5dp" android:top="3dp" android:right="5dp" android:bottom="3dp" /> </shape>

Ex:

android:background="@drawable/<< your file name>>"


puede colocar el botón en Diseño de marco separado para que su vista no afecte al botón y esa es mi idea


Establezca el fondo en @android:drawable/btn_default para deshacerse de la transparencia del tema holo