2011-10-03 35 views
6

Por lo tanto en el nivel API 11 Google introdujo la posibilidad de girar una ImageView (¡Sí, después de que se introdujo la posibilidad de animar tal rotación, yay pensamiento inteligente, yay!)Rotación ImageView en Android <API nivel 11

Pero ¿cómo debo ir para rotar un ImageView usando, por ejemplo, Nivel de API 8? No puedo usar setRotation() como se describe arriba.

Respuesta

2

Empecé con la creación de mapa de bits y la rotación de la lona/matriz, sin embargo esto no fue una buena solución. Finalmente terminó intercambiando el dibujo si se cumplen las condiciones. Debo decir que esto es una ExpandableListView donde las células se reutilizan al dibujar.

if (isExpanded) { 
     ImageView view = (ImageView) convertView.findViewById(R.id.ImageView); 
     view.setImageResource(R.drawable.quickactions_button_normal_down); 
    } 

    if (!isExpanded) { 
     ImageView view = (ImageView) convertView.findViewById(R.id.ImageView);   
     view.setImageResource(R.drawable.quickactions_button_normal); 
    } 

normalmente no soy un desarrollador de Android, pero estoy realmente sorprendido de que es posible animar una rotación, pero no estática = la rotación de un estirable. Lógicamente, el primero es un subconjunto del segundo y no al revés.

7

RotationAnimation estaba presente desde nivel Api 1

RotateAnimation animation = new RotateAnimation(from, to, 
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); 
animation.setInterpolator(new LinearInterpolator()); 
animation.setDuration(1); 
animation.setFillAfter(true); 

imageView.startAnimation(animation); 
+1

Sí. Esto todavía se mostrará como una animación aunque la duración se establezca en 1. También usar esto en una ExpandableTableView donde las células se vuelven a usar al dibujar lo hace algo costoso y las animaciones "rápidas" se ven realmente raras cuando se desplaza por la lista. Terminé simplemente cambiando el dibujable. – sebrock

Cuestiones relacionadas