2013-02-12 2 views
1

Я пытаюсь повернуть стрелку, чтобы указать на какой-то конкретное местоПоворот изображения в определенном направлении

float bearing = myLoc.bearingTo(mecca); 
     RotateAnimation rotate = new RotateAnimation(0, bearing, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); 
     arrow.setAnimation(rotate); 
     rotate.start(); 

Однако она вращается и в течение менее чем за одну секунду он приходит в исходное место. Как я могу заставить его вращаться, как компас.

ответ

2

Другой простой способ повернуть ImageView:

Matrix matrix=new Matrix(); 
imageView.setScaleType(ScaleType.MATRIX); //required 
matrix.postRotate((float) angle, pivX, pivY); 
arrow.setImageMatrix(matrix); 
+0

подшипника угол я предположим, но как я получу PivX и pivY –

1

Возможно, вы пытались:

rotate.setFillAfter(true) 
1

Просто попытайтесь установить продолжительность анимации, как

animation.setDuration(1500); 
Where Duration is int(miliseconds) 
Смежные вопросы