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();
    }

你可能感兴趣的:(android,动画)