android 旋转动画

来源:互联网 发布:煤田自燃 知乎 编辑:程序博客网 时间:2024/05/16 14:51


1.java代码

int pivotType = Animation.RELATIVE_TO_SELF; // 相对于自己

float pivotX = .5f; // 取自身区域在X轴上的中心点
float pivotY = .5f; // 取自身区域在Y轴上的中心点
rotateAnimation = new RotateAnimation(firstFromRoate, lastdegreen,
pivotType, pivotX, pivotType, pivotY); // 围绕自身的中心点进行旋转
firstFromRoate=lastdegreen;
rotateAnimation.setDuration(1000);
rotateAnimation.setRepeatCount(0);
rotateAnimation.setFillAfter(true);

iv_zhizhen.startAnimation(rotateAnimation);


2.xml

<?xml version="1.0" encoding="utf-8"?>  
<set xmlns:android="http://schemas.android.com/apk/res/android">  
   <rotate  
       android:fromDegrees="0"  
       android:toDegrees="359"  
       android:duration="500"  
       android:repeatCount="-1"  
       android:pivotX="50%"  
       android:pivotY="50%" />  
</set>

含义表示从0到359度开始循环旋转,0-359(若设置成360在停止时会出现停顿现象)度旋转所用时间为500ms,旋转中心距离view的左顶点为50%距离,距离view的上边缘为50%距离,即正中心,具体每个含义见下面的具体属性介绍。

Animation operatingAnim = AnimationUtils.loadAnimation(this, R.anim.tip);  
LinearInterpolator lin = new LinearInterpolator();  //匀速效果
operatingAnim.setInterpolator(lin);  
setInterpolator表示设置旋转速率。LinearInterpolator为匀速效果,Accelerateinterpolator为加速效果、DecelerateInterpolator为减速效果,具体可见下面android:interpolator的介绍。  

if (operatingAnim != null) {  
   infoOperatingIV.startAnimation(operatingAnim);  

完成时

infoOperatingIV.clearAnimation();   


0 0
原创粉丝点击