android常用动画举例

一、视图动画:
简介:使用简单,效果丰富,包括AlphaAnimation(透明度动画)、RotateAnimation(旋转动画)、TranslateAnimation(平移动画)、ScaleAnimation(缩放动画)。这几种动画可以通过AnimationSet的动画集合来混合 使用。
优点:可以兼容几乎所用的Android版本,使用起来效率比较高。
缺点:不具备交互性,也就是点击事件不会随着动画移动而移动,控件动画完成后,控件的点击事件依然停留在原来的位置。
二、使用举例:

//透明度动画
AlphaAnimation aa =new AlphaAnimation(0,1);
aa.setDuration(1000);
view.startAnimation(aa);

//旋转动画
//括号中参数为旋转的起始角度和旋转中心点的坐标
RotateAnimation ra  = new RotateAnimation(0,360,100,100);
//也可以通过设置参数来控制旋转动画的参考系
//下面代码参考系为自身
//RotateAnimation ra = new RotateAnimation(0,360,
//RotateAnimation.RELATIVE_TO_SELF,0.5F,RotateAnimation.RELATIVE_TO_SELF,0.5F);
view.startAnimation(ra);

//位移动画
TranslateAnimation ta = new TranslateAnimation(0,200,0,300);
ta.setDuration(1000);
view.startAnimation(ta);

//缩放动画
ScaleAnimation sa = new ScaleAnimation(0,2,0,2);
sa.setDuration(1000);
view.startAnimation(ta);

//动画集合的使用
AnimationSet as = newAnimationSet(true);
as.setDuration(1000);
AlphaAnimation aa = new AlphaAnimation(0,1);
aa.setDuration(1000);
as.addAnimation(aa);
TranslateAnimation ta = new TranslateAnimation(0,100,0,200);
ta.setDuration(1000);
as.addAnimation(ta);
view.startAnimtaion(as);

三、动画监听:
用户可以通过animation.setAnimatioListener(new Animation.AnimationListener(){});来实现对动画的监听,这个监听器可以监听动画开始、动画结束和动画重复时的动作,并针对相应得动作进行处理。

四、给Layout设置动画

    /**
     * 给layout下面的所有view设置进入动画
     */
    private void setLayoutAnimation() {
        // 给LinearLayout下面的每个控件设置动画
        LinearLayout ll = (LinearLayout) findViewById(R.id.ll_bottom);
        // 设置缩放动画
        ScaleAnimation sa = new ScaleAnimation(0, 1, 0, 1);
        // 设置动画时间
        sa.setDuration(2000);
        // 第一个参数是动画,第二个是每个view的延迟时间
        LayoutAnimationController lac = new 
                LayoutAnimationController(sa, 0.5f);
        // 顺序执行
        lac.setOrder(LayoutAnimationController.ORDER_NORMAL);
        // 随机执行
        // lac.setOrder(LayoutAnimationController.ORDER_RANDOM);
        // 反序执行
        // lac.setOrder(LayoutAnimationController.ORDER_REVERSE);
        ll.setLayoutAnimation(lac);
        setListener();
    }
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值