旋转动画 RotateAnimation

注意:相对自身旋转时,xy坐标; 坐标系,Android 本身共有两大坐标系,一个是屏幕坐标系,另一个是View坐标系。 特点:y轴方向是向下的,x轴方向还是向右的。 注意坐标原点。

 RotateAnimation  ra = new RotateAnimation(0, -180, 
                 RotateAnimation.RELATIVE_TO_SELF, 0.5f, RotateAnimation.RELATIVE_TO_SELF, 1);  //相对于自己。
         ra.setDuration(1000);
         ra.setFillAfter(true);   //填充变化后的动画。

         rl.startAnimation(ra);

以相反的方向显示动画。


        RotateAnimation  ra = new RotateAnimation(-180, 0, 
                 RotateAnimation.RELATIVE_TO_SELF, 0.5f, RotateAnimation.RELATIVE_TO_SELF, 1);  //相对于自己。
         ra.setDuration(1000);

         rl.startAnimation(ra);

动画,有一个延迟方法,当用到需要延时操作一些动画的时候很实用。

**ra.setStartOffset(startOffset);**

旋转动画在做的时候出现的bug:

1、系统源生的旋转动画位置改变后,view的位置并没有被改变。这个特性很好。

如果出现点击时间的冲突时,可以禁用在某种情况下的点击事件。

    ra.setAnimationListener(new MyListener()); //设置动画监听;
    static class MyListener implements AnimationListener{

        @Override  //Aniamtion开始的时候执行
        public void onAnimationStart(Animation animation) {
            // TODO Auto-generated method stub
            animaCount++;
        }

        @Override
        public void onAnimationEnd(Animation animation) {
            // TODO Auto-generated method stub
            animaCount--;
        }

        @Override
        public void onAnimationRepeat(Animation animation) {
            // TODO Auto-generated method stub

        }


//连续按键直接接着走原来动画的bug 修复:     数量不为零说明还有动画执行。
    case R.id.iv_home:
            if(AnimaUtils.animaCount!=0){
                //说明有动画在执行;
                return;

            }

自定义控件:
1.组合控件:将系统原生控件组合起来,加上动画效果,形成一种特殊的UI效果
2.纯粹自定义控件:继承自系统的View,自己去实现view效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值