android笔记18-anroid补间动画

anroid补间动画:

547fe12c00019e9b05000192.jpg

547fe12c0001fb1a05000241.jpg

547fe12d00018b8e05000281.jpg


都有的属性:
 duration:表示动画的持续时间,单位为毫秒级的;
 interpolator:动画的加速器;
 repeatCount:动画的重复次数;
 startOffSet:表示隔多少秒后执行。可以利用这个性质来把set中的各个动画隔开;

alpha的属性:(渐变)
 fromAlpha:开始时的透明度;
 toAlpha  :结束时的透明度;
(透明度是0~1,0:代表完全透明,1代表完全不透明);
 fillAfter:表示动画结束后是否保持当前状态;
         (true为保持,false为回到原来的状态)

translate的属性:(移动)
 fromXDelta:
 fromYDelta:
 toXDelta:
 toYDelta:
(分别表示起始的xy座标,结束的xy座标,以原位置为原点)

scale的属性:(形变)
 fromXScale:
 fromYScale:
 toXScale:
 toYScale:
(表示缩放的起始大小和终止大小,1为原来的大小,0表示消失); pivotX:表示缩放中心相对于整个图片的x位置,输入为百分比,如50%;
pivotY:表示缩放中心相对于整个图片的y位置,输入为百分比,如50%;

rotate的属性:(旋转)
 fromDegrees:
 toDegrees:
(开始与结束时的角度)
 pivotX:
 pivotY:

set:可以放置多个动画;
 


通过xml设置补间动画:
 第一步:在xml中,设置按钮控件;添加imageView放入到RelativeLayout布局中;
 第二步:给按钮设置点击事件(可以将findViewById与setOnClickListener放在一起来设置);重写onClick方法,调用view的成员函数getId().并使用switch与case从而判断触发了哪一个按钮;创建并初始化imageView对象。
 第三步:创建Animation对象,初始化赋值为null。在res文件夹下创建一个新的文件夹,用来存放动画的xml文件。在新文件夹下创建xml文件注意一定要命名为anim,(如果文件名为anim,那么xml的Resource Type就默认为Tween Animation)之后从5中类型中(alpha,rotate,scale,set,translate)选择一种来创建布局文件;并设置动画的相应属性;
 第四步:在case中,调用AnimationUtils类的静态方法loadAnimation(context,id),并将返回值赋给Animation对象;
  其中context为上下文对象:this;
      id 为动画的xml文件的id:R.anmi....;
 第五步:调用imageView对象的setAnimation()方法并以animation对象作为参数传入。



使用代码设置补间动画:
 前两步与xml方式相同;
 第三步:创建函数,返回类型为Animation;在函数中创建5种Animation类(AlphaAnimation,TranslateAnimation,ScaleAnimation,RotateAnimation,AnimationSet)的对象,并调用函数的构造方法,如创建AlphaAnimation对象的话,构造方法就为AlphaAnimation(fromAlpha,toAlpha);参数名的含义与alpha的属性是相对应的;调用相应的函数来设置动画的属性,如setDuration(1000)   setFillAfter(true)等,最后返回创建的对象;(注意:如果是AnimationSet的综合动画的话,还要在函数里面创建其他的类型的Animation对象,之后再调用AnimationSet的AddAnimation方法,将各个对象作为参数一个一个地加入到AnimationSet中去);
 第四步:将创建的函数放到相应的case中,并将返回值赋给第二步中创建的Animation对象;
 第五步:调用imageView对象的setAnimation()方法并以animation对象作为参数传入。
 第六步:设置监听器:调用Animation的setAnimationListener(new AnimationListener())的方法;之后重写onAnimationStart(),onAnimationRepeat(),onAnimationEnd()这三种方法;

调用Animation的setRepeatCount(),可以设置animation的重复次数;如果设置为-1,表示重复无限次;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章