2010-05-25 11 views
7

Estoy agregando un efecto de animación de brillo a un logotipo. Hasta ahora, he logrado obtener la imagen brillante detrás del logotipo, utilizando un LayeredDrawable, pero no puedo encontrar la manera de animarlo. Descubrí que AlphaAnimation lograría el efecto deseado, pero desafortunadamente solo puedo aplicarlo en Vistas, no en Dratables. ¿Cómo puedo lograr este efecto?Aplicar una animación en un Drawable en Android

Respuesta

2

Android 3.0 introducido Property Animations.

Lamentablemente, esto se limita a Android 3.0 y hasta el cual no se llegará a los teléfonos en el corto plazo.

-2

Estoy usando una animación en ImageView que muestra el dibujo. Creo que esto también debería ser posible en tu caso.

+0

Lamentablemente, un dibujante en capas parece crear un solo ImageView. Entonces, si tuviera que aplicar Alpha Animation, se aplicaría tanto al logo como a la luz. – Casebash

6

ejemplo simple

final ImageView imageView = (ImageView) findViewById(R.id.animatedImage); 
final Button animated = (Button) findViewById(R.id.animated); 
animated.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     Drawable drawable = imageView.getDrawable(); 
     if (drawable.getAlpha() == 0) { 
      ObjectAnimator animator = ObjectAnimator.ofPropertyValuesHolder(drawable, PropertyValuesHolder.ofInt("alpha", 255)); 
      animator.setTarget(drawable); 
      animator.setDuration(2000); 
      animator.start(); 
     } else { 
      ObjectAnimator animator = ObjectAnimator.ofPropertyValuesHolder(drawable, PropertyValuesHolder.ofInt("alpha", 0)); 
      animator.setTarget(drawable); 
      animator.setDuration(2000); 
      animator.start(); 
     } 
    } 
}); 

Método getAlpha() poner en api 19. Pero no es una gran restricción, usted puede guardar el estado de una variable local. ObjectAnimator agregar en Android 3.0 (api 11), tal vez la versión anterior de Android se puede usar nineoldandroids. No hice la prueba con nineoldandroids.

Cuestiones relacionadas