Android实现ImageView的旋转动画

本文详细介绍了Android中View基础动画RotationAnimation的使用方法,包括动态生成及通过XML文件定义动画的过程,并展示了如何为ImageView添加旋转动画效果。此外,还探讨了如何使用属性动画实现立体旋转效果,以及如何结束不同类型的动画。


一、View基础动画 RotationAnimation

1、动态生成:RotateAnimation (float fromDegrees, float toDegrees, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)

参数说明:

float fromDegrees:旋转的开始角度。 
float toDegrees:旋转的结束角度。 
int pivotXType:X轴的伸缩模式,可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。 
float pivotXValue:X坐标的伸缩值。 
int pivotYType:Y轴的伸缩模式,可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。 
float pivotYValue:Y坐标的伸缩值。

2、使用动画文件res/anim/anim_round_rotate.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"  <!--0~359防止卡顿-->
        android:pivotX="50%"     <!--设置旋转中心点为控件中心-->
        android:pivotY="50%"
        android:duration="1000"
        android:repeatCount="-1" /> <!--设置不断旋转-->
</set>
3、如何给ImageView加上动画效果?

        Animation circle_anim = AnimationUtils.loadAnimation(context, R.anim.ddqb_anim_round_rotate);
        LinearInterpolator interpolator = new LinearInterpolator();  //设置匀速旋转,在xml文件中设置会出现卡顿
        circle_anim.setInterpolator(interpolator);
        if (circle_anim != null) {
            img_loading_circle.startAnimation(circle_anim);  //开始动画
        }


二、利用属性动画实现立体的旋转动画

属性动画ObjectAnimation实现旋转,主要用到rotationX和rotationY这两个属性,没有rotationZ这个属性。

ObjectAnimator icon_anim = ObjectAnimator.ofFloat(img_loading_icon, "rotationY", 0.0F, 359.0F);//设置Y轴的立体旋转动画</span></span>
icon_anim.setRepeatCount(-1); icon_anim.setDuration(1000); icon_anim.setInterpolator(interpolator); //设置匀速旋转,不卡顿 icon_anim.start();



三、如何结束动画?

1、对于RotationAnimation,直接调用view.clearAnimation() 清除动画;

2、对于ObjectAnimation,则调用ObjectAnimation对象的end()方法结束。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值