属性动画,逐帧动画,补间动画基本用法笔记

逐帧动画:
xml:
item设置图片资源以及持续时间

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/f3" android:duration="3000"></item>
    <item android:drawable="@drawable/f1"
        android:duration="2000"></item>
    <item android:drawable="@drawable/f2"
        android:duration="1000"></item>
</animation-list>

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/ff"
        android:background="@drawable/flay"

       />

java

   AnimationDrawable drawable;
   ff= (ImageView) findViewById(R.id.ff);
   //设置资源
   drawable= (AnimationDrawable) ff.getBackground();
   drawable.start();

补间动画:
分别为缩放,透明,旋转,位移,以及相关属性

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale android:fromXScale="1.0"
    android:toXScale="0.5"
    android:fromYScale="1.0"
    android:toYScale="0.5"
    android:pivotX="50%"
    android:pivotY="50%"
    android:duration="8000"></scale>
    <alpha
        android:fromAlpha="1"
        android:toAlpha="0.5"
        android:duration="3000"></alpha>
    <rotate
        android:fromDegrees="0"
        android:toDegrees="180"
        android:pivotX="50%"
        android:pivotY="50%"
        android:duration="3000"></rotate>
    <translate
        android:fromXDelta="20"
        android:toXDelta="800"
        android:fromYDelta="30"
        android:toYDelta="1300"
        android:duration="8000"></translate>
</set>
 Animation anim;
 //加载资源
  anim= AnimationUtils.loadAnimation(this,R.anim.anim);
  //开始动画
  ff.startAnimation(anib);

属性动画:
xml
有执行顺序和其它属性


<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <objectAnimator
        android:duration="2000"
        android:propertyName="translationX"
        android:valueFrom="-500"
        android:valueTo="10"
        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>

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="hahahahaaaa"
    android:layout_centerInParent="true"
    android:id="@+id/fram"/>

//加载资源,设置显示到的组件

 textview= (TextView) findViewById(R.id.fram);
 Animator animator = AnimatorInflater.loadAnimator(this, R.anim.fram);
        animator.setTarget(textview);
        animator.start();

属性动画代码实现:
//设置了动画的顺序,持续时间,以及监听。

    ObjectAnimator moveIn = ObjectAnimator.ofFloat(textview, "translationX", -500f, 0f);
        ObjectAnimator rotate = ObjectAnimator.ofFloat(textview, "rotation", 0f, 360f);
        ObjectAnimator fadeInOut = ObjectAnimator.ofFloat(textview, "alpha", 1f, 0f, 1f);
        AnimatorSet animSet = new AnimatorSet();
        animSet.play(rotate).with(fadeInOut).after(moveIn);
        animSet.setDuration(5000);
        animSet.start();
        animSet.addListener(new Animator.AnimatorListener() {
            @Override
            public void onAnimationStart(Animator animation) {

            }

            @Override
            public void onAnimationEnd(Animator animation) {

            }

            @Override
            public void onAnimationCancel(Animator animation) {

            }

            @Override
            public void onAnimationRepeat(Animator animation) {

            }
        });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值