android动画

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中使用animations
1.在res目录下创建一个anim文件夹
2.创建xml文件,并首先加入set标签
3.在该标签下加入rotate,alpha,scale,或者translate标签
4.在代码中使用AnimationUtils当中装载xml文件,并生产animation对象


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值