android animation相关

来源:互联网 发布:推荐健身房的软件 编辑:程序博客网 时间:2024/06/10 13:07

android animation 有4大类型: 

1.Tween animation(渐变动画)

2.Frame animation

3.Layout Animation

4.Property Animation

这些android animation都可以在xml文件中定义,也可以直接用java code 直接生成。

通用: i.从xml中加载动画文件并且播放:  

Animation scale = AnimationUtils.loadAnimation(Context, R.anim.···);

//img.startAnimation(scale);


  ii. 播放动画的时候会触发动画的播放事件,我们可以设置AnimationListener对动画放映到不同的状态设置监听(onAnimationStart, onAnimationEnd,onAnimationRepeat)



(1). 关于Tween animation ,大概有这几种:alpha、scale、translate、rotate  (对应的java code AlphaAnimation, ScaleAnimation ······)

他们有下面这些通用属性: 

Duration: 动画持续时间(ms)

fillAfter: 设置为true,动画转化在动画结束的时候被采用,view不会回复原样

fillBefore: 设置为true,动画转化在动画开始前被采用

interpolator: 动画插入器(加速减速等等,控制动画播放的节奏)

repeatCount: 重复次数

repateMode: 顺序重复/倒序重复

startOffset: 动画之间的时间间隔


···························································································································································································

a. AlphaAnimation:

i. fromAlpha: (float,0f~1.0f)

ii.toAlpha: (float,0f~1.0f)


b. ScaleAnimation:

i. fromXScale, toXScale, fromYScale, toYScale 分别是起始和结束时动画的伸缩尺寸( 0f~1.0f)

ii. pivotX, pivotY 是伸缩的原点(可用相对位置0~100%)


c. TranslateAnimation:

i. fromXDelta, fromYDelta 分别是起始时x,y坐标

ii. toXDelta, toYDelta 分别是结束时x,y坐标


d. RotateAnimation:

i. fromDegrees 起始的角度

ii. toDegrees终止的角度

iii. pivotX,pivotY 旋转动画的旋转中心点坐标(可以用相对位置0~100%)


e. 用上面4种动画组合成更有趣的动画,我们可以考虑在播放动画1结束的时候通过监听onAnimationEnd回调方法来启动动画2,可以实现动画在时间轴上的线性组合,或者利用startOffSet设置动画的s时间间隔


f. 动画在activity中的使用,intent(Context, Activity.class);   

startActivity(intent);

overridePendingTransition(R.anim_new_room_in,R.anim_last_room_out);

   函数overridePendingTransition在startActivity / finish()调用后立即调用,仅生效一次。另外,可以写个Theme也行,这个日后再补。


·····························································································································································································


(2). FrameAnimation

在xml中,我们用animation-list作为根元素,在drawable下创建FrameAnimation,然后在animation-list下设置item,每一个item 是一帧,我们只需要设定android:drawable  和 android:duration属性设置好每一帧的图片资源以及持续时间即可。



(3). LayoutAnimation

这是为ViewGroups 添加动画用的,我们可以使用LayoutAnimationController(布局动画控制器) 为ViewGroups准备动画并且设置动画如何应用于ViewGroups的各个子View

LayoutAnimationController 的构造方法需要一个参数,arg1 是请求一个animation,用于子View, 另外,我们需要设定controller的setOrder方法指定一个动画对子view的应用顺序, 设定好之后,我们需要调用ViewGroups.setLayoutAnimation(myLayoutAnimationController),设定viewGroups的动画,并且调用viewGroups.startLayoutAnimation启动动画。

示例代码:



(4) PropertyAnimation
//这个暂时不会,以后再补充。


 

0 0
原创粉丝点击