Android 之 3种动画

2018-01-06  本文已影响50人  3Q竹林
这里将讲述:
  1. 逐帧动画(FrameAnimation) 、补间动画(TweenAnimation) 、属性动画(PropertyAnimation);
  2. As的res文件中,分别使用drawable、anim、animator目录下的xml编写动画;
逐帧动画(FrameAnimation)

它的实现方式也有两种:代码和xml方式;

补间动画的属性有:RotateAnimation、AlphaAnimation、ScaleAnimation、TranslateAnimation、AnimationSet ,再者可以加上用于xml动画文件引入的AnimationUtils类,示例:

  ImageView iv = (ImageView) dialog.findViewById(R.id.loading_iv);
  RotateAnimation rotateAnimation = new RotateAnimation(0, 5760, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,0.5f); //相对自己左上为0.0
 // Animation rotateAnimation=AnimationUtils.loadAnimation(this, R.anim.rote); //当然这里你也可以用xml方式
  rotateAnimation.setDuration(10000);
  iv.startAnimation(rotateAnimation); 
// rotateAnimation.start(); //或这样启动

涉及到的属性值有 (名称一定要写对):
    1、透明度:alpha
    2、旋转度数:rotation、rotationX、rotationY
    3、平移:translationX、translationY
    4、缩放:scaleX、scaleY

示例 1. 使用代码实现:

    ObjectAnimator animator = ObjectAnimator
        .ofFloat(iv, "rotation", 0.0F, 360.0F)
        .setDuration(800);
    animator .setRepeatCount(ObjectAnimator.INFINITE);
    animator.setInterpolator(new LinearInterpolator());
    animator .start();

示例 2. 使用 xml文件配置动画(R.animator.anim_file):

    <set xmlns:android="http://schemas.android.com/apk/res/android"  
        android:ordering="sequentially" >  
        <objectAnimator  
            android:duration="2000"  
            android:propertyName="translationX"  
            android:valueFrom="-500"  
            android:valueTo="0"  
            android:valueType="floatType" >  
        </objectAnimator>  
      
        <set android:ordering="together" >  
            <objectAnimator  
                android:duration="3000"  
                android:propertyName="rotation"  
                android:valueFrom="0"  
                android:valueTo="360"  
                android:valueType="floatType" >  
            </objectAnimator>  
      
            <set android:ordering="sequentially" >  
                <objectAnimator  
                    android:duration="1500"  
                    android:propertyName="alpha"  
                    android:valueFrom="1"  
                    android:valueTo="0"  
                    android:valueType="floatType" >  
                </objectAnimator>  
                <objectAnimator  
                    android:duration="1500"  
                    android:propertyName="alpha"  
                    android:valueFrom="0"  
                    android:valueTo="1"  
                    android:valueType="floatType" >  
                </objectAnimator>  
            </set>  
        </set>  
    </set>  

然后在代码中用AnimatorInflater引入:

   Animator animator = AnimatorInflater.loadAnimator(context, R.animator.anim_file);  
   animator.setTarget(view);  
   animator.start();  







好啦,就先写到这里,后继再来追加。。。

.

上一篇 下一篇

猜你喜欢

热点阅读