Android动画复习(包括缩放动画、平移动画、旋转动画、透明度动画)

现在是下午,我还在上班,工作都完成了,正在测试,突然感到很迷惘,工作一年了,仍然还是老样子,想到这些不由得倒吸一口冷汗。所以抓紧时间来看看我的博客,更新一下内容,有时候不逼自己一把,永远都不知道自己的极限是什么。

今天就来说说很基础很基础的知识:动画。动画主要分为四种。

1.缩放动画(ScaleAnimation);
2.平移动画(TranslateAnimation);
3.旋转动画(RotateAnimation);
4.透明度(AlphaAnimation);
其实还有一个,叫动画集合,现在这里先放一放。

接下来,我先讲讲在java代码里面怎么去实现动画的效果。

首先看到缩放动画:
    private void suoFang(ImageView iv) {
        ScaleAnimation animation;
        animation = new ScaleAnimation(0,2,0,2,Animation.RELATIVE_TO_SELF,
                0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
        animation.setDuration(500);
        animation.setFillAfter(true);
        iv.startAnimation(animation);
    }
看到代码里面,首先这是一个私有的方法,传了一个ImageView对象,所以很明显,这个是实现图片的缩放效果的。重点来看ScaleAnimation的三个构造方法:
1.ScaleAnimation(fromX, toX, fromY, toY);
2.ScaleAnimation(fromX, toX, fromY, toY, pivotX, pivotY);
3.ScaleAnimation(fromX, toX, fromY, toY, pivotXType, pivotXValue, pivotYType, pivotYValue)
第一个其实很明显,分别是从水平缩放和垂直缩放的角度,默认的原点是当前ImageView控件的左上角。
第二个比一个多了两个参数,这两个参数就是可以让我们定义原点的。
第三个好像更丰富了,从单词上也不难理解。前四个都类似,重点看看后面的四个,首先是 pivotXType,这个是指原点相对x的类型,常用的是Animation.RELATIVE_TO_SELF,pivotXValue是指原点的值,一般的,0.5就是指原点了,后面的两个参数依次类推。

所以,一个缩放动画就搞定了。


接下来,再来看看平移动画:
    private void pingYiAmin(ImageView iv) {
        TranslateAnimation animation;
        animation = new TranslateAnimation(0, 180, Animation.RELATIVE_TO_SELF,
                Animation.RELATIVE_TO_SELF);
        animation.setDuration(500);
        animation.setFillAfter(true);
        iv.startAnimation(animation);
    }
同样的,我们来看看它的构造方法。
1.TranslateAnimation(fromXDelta, toXDelta, fromYDelta, toYDelta);
2.TranslateAnimation(fromXType, fromXValue, toXType, toXValue, fromYType, fromYValue, toYType, toYValue);

我们来一一分析一下这个参数的具体意义:

float fromXDelta:这个参数表示动画开始的点离当前View X坐标上的差值;

   float toXDelta, 这个参数表示动画结束的点离当前View X坐标上的差值;
  
   float toXDelta, 这个参数表示动画结束的点离当前View X坐标上的差值;
  
   float toYDelta)这个参数表示动画开始的点离当前View Y坐标上的差值;
  
  如果view在A(x,y)点 那么动画就是从B点(x+fromXDelta, y+fromYDelta)点移动到C 点(x+toXDelta,y+toYDelta)点.

第二个构造方法

fromXType:第一个参数是x轴方向的值的参照(Animation.ABSOLUTE,Animation.RELATIVE_TO_SELF,or Animation.RELATIVE_TO_PARENT);

  fromXValue:第二个参数是第一个参数类型的起始值;

  toXType,toXValue:第三个参数与第四个参数是x轴方向的终点参照与对应值;

  后面四个参数就不用解释了。如果全部选择Animation.ABSOLUTE,其实就是第二个构造函数。

  以x轴为例介绍参照与对应值的关系:

  如果选择参照为Animation.ABSOLUTE,那么对应的值应该是具体的坐标值,比如100到300,指绝对的屏幕像素单位

  如果选择参照为Animation.RELATIVE_TO_SELF或者 Animation.RELATIVE_TO_PARENT指的是相对于自身或父控件,对应值应该理解为相对于自身或者父控件的几倍或百分之多少。多试参数就明白了。

我们再来看看旋转动画:

    private void xuanZhuanAmin(ImageView iv) {
        RotateAnimation animation;
        animation = new RotateAnimation(0, 180, Animation.RELATIVE_TO_SELF,
                0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
        animation.setDuration(500);
        animation.setFillAfter(true);
        iv.startAnimation(animation);
    }
首先来分析一下它的构造方法:
1.RotateAnimation(fromDegrees, toDegrees);

2.RotateAnimation(fromDegrees, toDegrees, pivotX, pivotY);

3.RotateAnimation(fromDegrees, toDegrees, pivotXType, pivotXValue, pivotYType, pivotYValue)。

这里面:

fromDegrees是指从什么角度开始,toDegrees是指在什么角度结束。第一个参数的原点是控件的左上角。

剩下的上面的缩放动画已经涉及过,就不在赘诉了。

最后看看透明度动画:

    private void danRuDanChu(ImageView iv) {
        AlphaAnimation animation;
        animation = new AlphaAnimation(0, 1);
        animation.setDuration(500);
        animation.setFillAfter(true);
        iv.startAnimation(animation);
    }

这一个比较简单,只有一个重要的构造方法。

AlphaAnimation(fromAlpha, toAlpha)

这里也很明显,就是从什么状态到什么状态,最小的是-1最大的是1

好了,截止目前,这里java代码实现控件动画的效果就到此结束了,下一次我们聊聊在xml里面怎么设置动画,并且在java代码里怎么引用这些动画。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值