Android aplicar color a la animación alfa
¿Hay una manera de aplicar un color a una animación alfa en android? Sé cómo utilizar el elemento <alpha>
, pero me gustaría que el alfa aplique un color así como un alfa para que pueda hightlight un diseño. ¿es posible?
- El color de fondo de Android está en gris en lugar de @android: color / blanco
- Cómo hacer la imagen en color a blanco y negro en Android
- ¿Cómo puedo cambiar el color de efecto táctil de ActionBar en Android 3.0 y versiones superiores
- ¿Cuál es el uso de 0xff -colors en android?
- ¿Cómo aplicar gradiente a la barra de estado en android?
- Cambiar el color de fondo del primer elemento en ListView
- ¿Cómo puedo configurar el fondo de mi forma en xml?
- ¿Qué algoritmo de mezcla de color se utiliza para oscurecer un color?
- TextView añadiendo gradiente y sombra
- Los colores de ShapeRenderer dejan de funcionar al renderizar imágenes con SpriteBatch
- Colores hexagonales en Android son algunas veces 8 dígitos. ¿Cómo? ¿Cuál es la diferencia entre #FFFFFF y # FFFFFF00
- Cómo obtener la temperatura de color de la ganancia de corrección de color
- Cómo cambiar el color de la barra de estado para que coincida con la aplicación en Lollipop?
Las animaciones no pueden incluir cambios de color en Android – solo se incluyen alfa, rotación, escala y traducción.
Dicho esto, todavía puede hacer cambios de color superponiendo dos objetos de colores diferentes uno encima del otro y desvaneciéndose el uno superior dentro o fuera.
También puede buscar en un TransitionDrawable o TextSwitcher para lograr algo similar. Esperamos poder obtener soporte completo para las animaciones de color en una futura actualización.
También estoy tratando lo mismo en alpha. Pero http://nathanael.hevenet.com/android-dev-fading-background-animation/ este enlace puede responder a su pregunta. Utilizando la transición es posible … 🙂
Bueno, aquí está mi solución de animación de una región en particular de la pantalla (ver demo abajo). Tenga en cuenta que este código está dirigido a dispositivos que ejecutan > = API9 .
Principiante amistoso, sólo copiar y pegar.
FadeAnimationColored.java
public class FadeAnimationColored { private View view; private float maxBrightness = 1.0f; private float minBrightness = 0.0f; private long duration = 400L; private long startOffset = 0L; private int color = android.R.color.white; // Constructors... public FadeAnimationColored(View view, String color, float maxBrightness, float minBrightness, long duration, long startOffset) { this.view = view; this.color = Color.parseColor(color); this.maxBrightness = maxBrightness; this.minBrightness = minBrightness; this.duration = duration; this.startOffset = startOffset; prepareView(); } public void fadeOut() { this.view.setAlpha(1f); Animation anim = new AlphaAnimation(minBrightness, maxBrightness); anim.setDuration(duration); anim.setStartOffset(startOffset); anim.setFillEnabled(true); anim.setFillAfter(true); view.startAnimation(anim); } public void fadeIn() { Animation anim = new AlphaAnimation(maxBrightness, minBrightness); anim.setDuration(duration); anim.setStartOffset(startOffset); anim.setFillEnabled(true); anim.setFillAfter(true); view.startAnimation(anim); } private void prepareView() { this.view.setBackgroundColor(this.color); this.view.setAlpha(0f); } }
A continuación, agregue una vista adicional a su diseño, piense en ella como una superposición (utilicé un FrameLayout
simple que está configurado para match_parent
)
Aquí hay un fragmento que muestra cómo configurar la animación en su Actividad o Fragmento:
FrameLayout interceptorFrame = (FrameLayout) mView.findViewById(R.id.fl_interceptor); final FadeAnimationColored fadeAnimationLayout = new FadeAnimationColored(interceptorFrame, MaterialColor.GREY_800, 0.9f, 0.0f, 400L, 0); mFabMenu.setOnMenuToggleListener(new FloatingActionMenu.OnMenuToggleListener() { @Override public void onMenuToggle(boolean opened) { if (opened) { fadeAnimationLayout.fadeOut(); } else { fadeAnimationLayout.fadeIn(); } } });