2017-09-03 89 views
0

我有一个图像。我需要它在左下角旋转一个小角度。当我点击屏幕时,此动画可以工作。图像出现在那里并旋转。但对于不同的职位,这个关键是不变的。我怎样才能以编程方式动态设置每个案例的枢纽?如何为旋转动画设置动态轴

?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shareInterpolator="false"> 
    <rotate 
     android:duration="500" 
     android:interpolator="@android:anim/linear_interpolator" 
     android:pivotY="100%" 
     android:pivotX="0%" 
     android:repeatCount="0" 
     android:toDegrees="10"/> 
</set> 

有我们给与价值,我们getX()getY()枢轴值什么办法?

+0

你是如何做旋转动画?根据你用来做什么,你会得到不同的答案。如果你是通过矩阵来做的话,你可以在应用旋转矩阵之前将原点翻译为你想要的点作为关键点。 –

+0

我没有尝试过使用矩阵。现在我会这样做。我用xml来做旋转 –

回答

0

得到了答案。通过这样做

var screenH=Resources.getSystem().getDisplayMetrics().heightPixels 
var screenH=Resources.getSystem().getDisplayMetrics().widthPixels 

var x= ("x value of your pivot)/screenW 

var y= ("y value of your pivot)/screenH 

var rotateAnim=RotateAnimation(0.0f , 20.0f , Animation.RELATIVE_TO_PARENT , x , 
Animation.RELATIVE_TO_PARENT , y) 

rotateAnim.setDuration(1000) 
rotateAnim.setFillAfter(true) 

view.startAnimation(rotateAnim)