如何围绕中心轴旋转形状

时间:2012-11-12 17:27:50

标签: android android-animation android-canvas android-view

在Android动画方面,我很惊讶地发现这么少的例子。我找到了动画演示,但它们只提供了一小部分你可能想要实现的东西。

对于我的特殊情况,我只是试图围绕中心点动画形状。我可以从演示中看到您可以使用以下内容传递值:

ObjectAnimator.ofObject(
      ballHolder
    , "name"
    , new XYEvaluator()
    , position1, position2, position3, position4, positionEtc);

但是我如何传递圆圈的所有值?我相信你不会这样做(如上例所示)。

也许我应该以不同的方式做到这一点?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

尝试此代码并根据需要进行调整:

要实现旋转动画,您可以使用XML定义该动画: 在/ res / anim文件夹下创建一个动画xml文件,名为:rotate_around_center_point.xml

 <?xml version="1.0" encoding="utf-8"?> 
  <set  xmlns:android="http://schemas.android.com/apk/res/android"
   android:shareInterpolator="false"> 
   <rotate android:toDegrees="360"  
     android:duration="700"  
     android:pivotX="205"    
     android:pivotY="180"
     android:interpolator="@android:anim/linear_interpolator"/>
  </set> 

将动画应用于视图:让它说出旋转图像:

     ImageView animationTarget = (ImageView) this.findViewById(R.id.testImage);
     Animation animation = AnimationUtils.loadAnimation(this,
     R.anim.rotate_around_center_point); animationTarget.startAnimation(animation); 

OR

使用Java代码动态创建动画:

 Animation newAnimation = new RotateAnimation(0, 360, 205, 180);
 newAnimation.setDuration(700);
 animationTarget.startAnimation(newAnimation); 

希望得到帮助。