2011-10-03 10 views
6

Więc w poziomie API 11 Google wprowadzono możliwość obrócenia ImageView (Yay, po wprowadzili możliwość animowania taki obrót, yay inteligentne myślenie, yay!)Obrotowy ImageView w Android <API Level 11

Ale jak powinienem obrócić widok ImageView za pomocą np Poziom API 8? Nie mogę użyć metody setRotation(), jak opisano powyżej.

Odpowiedz

2

że rozpoczęła się tworzenie mapy bitowej i obracania płótno/matryca, to jednak nie jest dobrym rozwiązaniem. W końcu skończyłem właśnie zamieniając losowanie, jeśli warunki są spełnione. Powinienem powiedzieć, że jest to ExpandableListView, gdzie komórki są ponownie wykorzystywane podczas rysowania.

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); 
    } 

nie jestem zwykle Android developer, ale jestem naprawdę zaskoczony, że możliwe jest animowanie obrót, ale nie statycznie ustawić rotację rozciągliwej. Logicznie pierwsza jest podzbiorem drugiej, a nie odwrotnie.

7

RotationAnimation był obecny od poziomu 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

Tak. Będzie to nadal wyświetlane jako animacja, nawet jeśli czas trwania jest ustawiony na 1. Używanie tego w rozwijanym widoku, w którym komórki są ponownie wykorzystywane podczas rysowania, czyni je nieco kosztownym, a "szybkie" animacje wyglądają naprawdę dziwacznie podczas przewijania listy. Skończyłem właśnie zamieniając drawable. – sebrock