zoukankan      html  css  js  c++  java
  • AndroidUI 视图动画-混合动画效果 (AnimationSet)/动画效果监听

    在前面介绍了几种动画效果:透明动画效果(AlphsAnimation)、移动动画效果(TranslateAnimation)、旋转动画效果(RotateAnimation)、缩放动画效果(ScaleAnimation);那么可不可以将这几种动画效果混在一块用呢?

    可以的,这个时候我们就用到了AnimationSet,它可以将一种或多种动画效果放在一起运行,下面是一个移动+透明效果的例子:

    <Button
            android:id="@+id/btnAnimation"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/btnAnimation" />

    动画代码:

     findViewById(R.id.btnAnimation).setOnClickListener(new OnClickListener() {
    			
    			@Override
    			public void onClick(View v) {
    				//创建动画容器,并且将是否使用动画补间(shareInterpolator)设置为true;
    //				AnimationSet set=new AnimationSet(true);
    				//透明效果动画
    //				AlphaAnimation alpha=new AlphaAnimation(0,1);
    //				alpha.setDuration(2000);
    				//移动效果动画
    //				TranslateAnimation trans=new TranslateAnimation(50, 0, 50, 0);
    //				trans.setDuration(2000);
    //				set.addAnimation(alpha);
    //				set.addAnimation(trans);
    //				v.startAnimation(set);
    				
    				//使用XML配置混合动画
    				v.startAnimation(AnimationUtils.loadAnimation(v.getContext(), R.anim.set1));
    			}
    		});

    XML:


    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android"
         android:shareInterpolator="true">
        <alpha android:fromAlpha="0" 
            android:toAlpha="1" 
            android:duration="2000" />
    	<translate android:fromXDelta="50" 
    	    android:toXDelta="0" 
    	    android:fromYDelta="50"
    	    android:toYDelta="0" 
    	    android:duration="2000" />
    </set>
    


    效果:



    动画效果监听,如果想在动画的执行过程,做一些其它事情可以实现动画的setAnimationListener事件监听器,在事件监听器里面有三个方法:

    //透明效果动画
    				AlphaAnimation alpha=new AlphaAnimation(0,1);
    				alpha.setAnimationListener(new AnimationListener() {
    					
    					@Override
    					public void onAnimationStart(Animation animation) {
    					}
    					
    					@Override
    					public void onAnimationRepeat(Animation animation) {
    					}
    					
    					@Override
    					public void onAnimationEnd(Animation animation) {
    					}
    				});
    



  • 相关阅读:
    测试随笔
    代码规范与计划
    WeChair项目Alpha冲刺(8/10)
    WeChair项目Alpha冲刺(7/10)
    WeChair项目Alpha冲刺(6/10)
    WeChair项目Alpha冲刺(5/10)
    WeChair项目Alpha冲刺(4/10)
    WeChair项目Alpha冲刺(3/10)
    WeChair项目Alpha冲刺(2/10)
    代码规范
  • 原文地址:https://www.cnblogs.com/raphael5200/p/5114791.html
Copyright © 2011-2022 走看看