Android Image transparency – alternativa para setAlpha obsoleto para API <11
Quiero establecer la transparencia en la imagen de fondo. He intentado android: alpha en xml, pero no hace nada. Yo uso setAlpha (int alfa), y funciona bien, pero es obsoleto, así que quiero otra solución (porque podría ser por ejemplo eliminado en el futuro). Hay setImageAlpha y setAlpha (float alfa), pero estos no están disponibles en api lvl 10 (y ese es mi objetivo). Así que mi pregunta es: ¿Cuál es el reemplazo de setAlpha (int alpha) para dispositivos con API 10 o inferior (y sólo quiero mencionar, que más de 1/4 de todos los dispositivos utilizan API 10 o inferior). Como he comprobado en stackoverflow, la mayoría de la gente todavía sugieren setAlpha (int alpha), pero como he dicho – es obsoleto …
- Cómo hacer que el botón transparente en mi aplicación sea visible
- Cajón de navegación por debajo de la barra de acción transparente
- Transparencia hexagonal en colores
- Transparente widget de fondo?
- La textura transparente de Android OpenGL dibuja negro
- Cambiar la opacidad del color int en java / android
- Actividad translúcida llenando toda la pantalla
- Descripción de los colores en Android (seis caracteres)
- Fondo transparente
- OpenGL ES 2.0 PNG canal alfa
- ¿Cómo puedo configurar el valor alfa de una vista completa en el nivel 7 de api (Android 2.1)
- Android: Transparencia PNG fallando con BitmapFactory.decodeStream (...) y carpeta de activos
- Superposición transparente GLSurfaceview en la vista existente en android?
ImageView
setAlpha no fue obsoleto hasta el nivel 16 de la API. El correcto para manejar esta situación es seguir utilizando hasta que pueda orientar un mínimo SDK nivel 16, y en ese momento, simplemente cambie a View
setAlpha.
Deprecation sólo significa no usar en un nuevo desarrollo si tiene una alternativa. Dado que Google no ha proporcionado una alternativa (es decir, a través de la compatibilidad de la biblioteca), ciertamente no lo quitaría y romper las aplicaciones no contadas ya en su teléfono.
Considérese afortunado de que se trata de ImageView, ya que tiene un setAlpha que puede utilizar!
ImageView iv_object; void updateAlpha(View v) { v.setAlpha(1); }
He arreglado el problema de depreciación por updateAlpha(iv_object)
ya que setAlpha()
no está obsoleto para View. Corregirme si estoy equivocado en cualquier punto. La ventaja es pasar cualquier objeto de clase Ver a ese método.
Esto funciona bien para mi:
public void setAlpha (float alpha) Añadido en el nivel 11 del API
Establece la opacidad de la vista. Este es un valor de 0 a 1, donde 0 significa que la vista es completamente transparente y 1 significa que la vista es completamente opaca.
Debe utilizar ImageView.setAlpha(int)
en API <16 y ImageView.setImageAlpha(int)
en API 16+. Son los mismos métodos.
ImageView.setAlpha(int)
ha cambiado el nombre a ImageView.setImageAlpha(int)
para evitar confusiones con View.setAlpha(float)
que no hace lo mismo. El primero cambia el alfa de la imagen fuente mientras lo dibuja (que es una operación relativamente barata) mientras que el último cambia el alfa de toda la vista que requiere asignar un búfer temporal para dibujar la vista y aplicar alfa a ese búfer.
Uso: yourImage.setVisibility (View.INVISIBLE);
0 == invisible.