android动画

来源:互联网 发布:淘宝评论图片福利没了 编辑:程序博客网 时间:2024/05/16 09:30

Animations

Animations介绍
一.android是实现android UI界面动画效果的API,animations提供了很多动画效果,例如旋转、平移、缩放、渐入渐出等。这些效果可以运用在绝大多数控件中。
二.animations分类
animation从总体上大概可以分为两类
1.补间动画
该类提供了旋转(rotate)、平移(translate)、缩放(scale)、渐入渐出(alpha)等效果。
2.逐帧动画
指定一个drawable序列,通过时间间隔播放每一个图片
三.animatios的使用
补间动画的使用(在代码中使用)
1.创建一个animationSet对象
2.增加需要创建相应的animation对象
3.根据项目的需求,为animation对象设置相应的数据
4.将animation对象添加到animationSet中。
5.控件开始执行animation
例子:/**
* 旋转动画
*/
private void testRotateAnimation(){
AnimationSet animationSet = new AnimationSet(true);
/**
* 旋转
* 第一个参数:从哪个旋转的角度开始
* 第二个参数:旋转多少度
* 后四个参数确定旋转的圆心
* 第三个参数:确定x轴坐标的类型,有Absolute绝对坐标,Relative_to_self相对于自身坐标
* Relative_to_parent相对于父容器坐标
*
*/
RotateAnimation animation = new RotateAnimation(0,180, Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
animation.setDuration(1000);
animationSet.addAnimation(animation);
img.startAnimation(animation);
}

 /**     * 平移动画     */    private void testTranslateAnimation(){        AnimationSet set = new AnimationSet(true);        /**         * 1 - 2 个参数表示x轴的类型和位置         * 3 - 4 个参数表示y轴的类型和位置         * 5 - 6 表示x轴的结束位置         * 7 - 8 表示y轴的结束位置         */        TranslateAnimation animation = new TranslateAnimation(Animation.RELATIVE_TO_SELF,0,Animation.RELATIVE_TO_SELF,0,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);        animation.setDuration(1000);        set.addAnimation(animation);        img.startAnimation(animation);    }

private void testScaleAnimation(){
AnimationSet animationSet = new AnimationSet(true);
ScaleAnimation animation = new ScaleAnimation(0,0.1f,0,0.1f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
animation.setDuration(1000);
animationSet.addAnimation(animation);
img.startAnimation(animation);
}
private void testAlphaAnimation(){
AnimationSet animationSet = new AnimationSet(true);
AlphaAnimation alphaAnimation = new AlphaAnimation(1,0.5f);
alphaAnimation.setDuration(1000);
animationSet.addAnimation(alphaAnimation);
img.startAnimation(alphaAnimation);
}

补间动画常见的方法1.animation.setDuration(long time)设置动画的持续时间,单位毫秒2.animation.setFillAfter(boolean flag)如果flag的值为true,则空间停留在结束时的位置3.animation.setFillBefore(boolean flag)如果flag的值为true,则控件停留在开始时的位置4.animation.setStartOffset(long time);设置动画执行之前的等待时间5.animation.setRepeatCount();设置动画执行重复次数在xml中使用animations1.在res目录下创建一个anim文件夹2.创建xml文件,并首先加入set标签3.在该标签下加入rotate,alpha,scale,或者translate标签4.在代码中使用AnimationUtils当中装载xml文件,并生产animation对象


0 0