2012-09-06 13 views
5

Mam obraz (który wygląda jak okrągły okrąg ładowania), który chcę obrócić wokół jego własnego centrum. Widziałem dużo kodu, który sugerował ustawienie PivotY i PivotX do 0,5 F lub połowy obrazu. Obie nie działa .. Po wielu prób i błędów, to nie obracają się wokół jego własnym centrum z następującego kodu:Obracanie obrazu w centrum nie działa gładko (Monodroid)

ImageView loading = FindViewById<ImageView>(Resource.Id.loadingGif); 
RotateAnimation rAnim = new RotateAnimation(0.0F, 359.0F,  Dimension.RelativeToSelf, 0.25F, Dimension.RelativeToSelf, 0.25F); 
rAnim.Interpolator = new LinearInterpolator(); 
rAnim.RepeatCount = Animation.Infinite; 
rAnim.Duration = 1000; 
loading.StartAnimation(rAnim); 

ale sama animacja nie będzie już gładka, obraz wydaje się obracać o 50degrees następnie zaczyna się wieszać i pomija połowę obrotu, a następnie kontynuuje normalnie w górnej połowie rotacji (mam nadzieję, że to ma sens).

Każdy pomysł, dlaczego mój obrót nie obraca się w pełnym zakresie 360 ​​stopni płynnie?

EDIT

wciąż nie rozwiązano tego problemu, ale ja po prostu dowiedzieć się czegoś o niej osobliwy. Animacja jest używana na ekranie ładowania bez dodatkowych funkcji w momencie animacji. Zauważyłem, że gdy trzymam palec na ekranie, animacja DZIAŁA gładko!

To dało mi do myślenia, że ​​problem może nie jest w kodzie animacji ale coś innego .. ale co ja jeszcze nie wiem ..

Odpowiedz

4

mam w końcu znalazłem odpowiedź!

podaję linię:

loading.setDrawingCacheEnabled(true); 

A potem musiałem zmienić czopami do 0,5F też. A teraz animacja działa płynnie!

//Rotate image 
ImageView loading = FindViewById<ImageView>(Resource.Id.loadingGif); 
loading.setDrawingCacheEnabled(true); 
rAnim = new RotateAnimation(0.0F, 359.0F, Dimension.RelativeToSelf, 0.5F, Dimension.RelativeToSelf, 0.5F); 
rAnim.Interpolator = new LinearInterpolator(); 
rAnim.RepeatCount = Animation.Infinite; 
rAnim.Duration = 1500; 
loading.StartAnimation(rAnim); 
+0

Oto, czego szukałem świetnie! – rahstame