关闭

旋转动画 RotateAnimation

117人阅读 评论(0) 收藏 举报
分类:

注意:相对自身旋转时,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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:27126次
    • 积分:1244
    • 等级:
    • 排名:千里之外
    • 原创:101篇
    • 转载:6篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论