transparente transparentar transparencia imagen hacer guardar fondo color canal cambiar blanco alfa agregar android

android - transparentar - hacer fondo blanco transparente gimp



¿Cómo puedo cambiar la transparencia(alfa) de una vista en pre-SDK-11 en Android? (5)

¡El ViewHelper de NineOldAndroids es lo que uso, es una clase de ayudante estática y una verdadera joya! Muchos aquí recomiendan NineOldAndroids pero no he visto ninguna mención del ViewHelper. Es realmente fácil de usar.

import com.nineoldandroids.view.ViewHelper; ... ViewHelper.setAlpha(myView, .2f);

También puede usarlo para configurar otras propiedades como x, y etc., muy útil al configurar animaciones o construir su UI. ¡Muchas gracias a Jake Wharton por compartir su trabajo con la comunidad!

¿Cómo puedo cambiar la transparencia (alfa) de una vista en pre-SDK-11 en Android?

Antes de sugerir el uso de un color de fondo con cierta transparencia, tenga en cuenta que este método no incluye todos los elementos de la vista, como el texto de un botón o las vistas secundarias de un grupo de vista.



Puede establecer Alpha en todos los colores de la vista (como el texto de un botón o las vistas secundarias de un grupo de visualización). Conviértelos en colores xml y úselos en todas las vistas.

Puede leer los colores de la vista recursivamente y agregarles alfa y establecerlos de nuevo.

Puede crear la vista como vista principal de una nueva Actividad. Luego haz lo que en ¿Cómo creo una actividad transparente en Android?


Puede extender el método views draw () y usar canvas.saveAlphaLayer ()

public void draw(Canvas canvas) { canvas.saveLayerAlpha(null, alphaValue, ALL_SAVE_FLAG); super.draw(canvas); canvas.restore(); }


EDITAR - el ejemplo a continuación se refiere para Android pre-SDK11, pero descubrí una biblioteca asombrosamente genial llamada Nine Old Androids , ¡lo increíble es habilitar todas las capacidades de animación de Android 3.0 para todas las versiones de API!

Respuesta anterior

De hecho, me encontré con este tipo de problema cuando quería establecer alfa dinámicamente en un diseño complejo. onSetAlpha() una anulación de onSetAlpha() y agregué otra función recursiva que verifica todo tipo de vistas de imágenes de fondo, dibujos y colores de texto.

@Override public boolean onSetAlpha(int alpha) { return onSetAlpha(alpha, theLayoutYouWantToSetAlphaTo); } public boolean onSetAlpha(int alpha, View view) { if (view instanceof ViewGroup) { for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) { onSetAlpha(alpha, ((ViewGroup) view).getChildAt(i)); if (((ViewGroup) view).getBackground() != null) ((ViewGroup) view).getBackground().setAlpha(alpha); } } else if (view instanceof ImageView) { if (((ImageView) view).getDrawable() != null) ((ImageView) view).getDrawable().setAlpha(alpha); if (((ImageView) view).getBackground() != null) ((ImageView) view).getBackground().setAlpha(alpha); } else if (view instanceof TextView) { ((TextView) view).setTextColor(((TextView) view).getTextColors().withAlpha(alpha)); if (((TextView) view).getBackground() != null) ((TextView) view).getBackground().setAlpha(alpha); } else if (view instanceof EditText) { ((EditText) view).setTextColor(((EditText) view).getTextColors().withAlpha(alpha)); if (((EditText) view).getBackground() != null) ((EditText) view).getBackground().setAlpha(alpha); } return true; }

Puede agregar otros tipos de vistas según lo necesite.