Property Animation 属性动画

    xiaoxiao2025-04-14  32

    //渐入渐出<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android" android:propertyName="alpha"//渐入渐出 此属性必须是被添加动画的view上有对应set方法的属性 android:valueFrom="0" android:valueTo="1" android:valueType="floatType"//value type也是对应的view set方法中接收的属性 android:duration="3000" />//水平移动<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android" android:propertyName="translationX"//水平移动 android:valueFrom="0" android:valueTo="100" android:valueType="floatType" android:repeatCount="1" //property animation 中移动之后不能回来 需要设置重复属性 android:repeatMode="reverse" android:duration="3000" />

    Java代码:

    //利用 AnimatorInflater.loadAnimator方法传入动画,创建ObjectAnimator对象ObjectAnimator a= (ObjectAnimator) AnimatorInflater.loadAnimator(this,R.animator.object02);//指定viewa.setTarget(img);//启动动画a.start(); //不使用xml配置文件,Java代码实现方式ObjectAnimator oa= ObjectAnimator.ofFloat(img, "alpha", 0,1);oa.start();

    Property Animation 集合使用: xml代码:

    <set xmlns:android="http://schemas.android.com/apk/res/android" android:ordering="sequentially" //ordering set特有属性 可以设置动画同时执行或者顺序执行 > <objectAnimator xmlns:android="http://schemas.android.com/apk/res/android" android:propertyName="alpha" android:valueFrom="0" android:valueTo="1" android:valueType="floatType" android:duration="3000" /> <objectAnimator xmlns:android="http://schemas.android.com/apk/res/android" android:propertyName="translationX" android:valueFrom="0" android:valueTo="100" android:valueType="floatType" android:repeatCount="1" android:repeatMode="reverse" android:duration="3000" /></set>

    Java 代码:

    //构建AnimatorSet对象 借助AnimatorInflater加载资源文件AnimatorSet as =(AnimatorSet) AnimatorInflater.loadAnimator(this,R.animator.set);//给动画指定viewas.setTarget(img);//启动动画as.start(); //不使用xml配置文件,Java代码实现方式ObjectAnimator o1= ObjectAnimator.ofFloat(btn, "alpha", 0,1);o1.setDuration(3000);ObjectAnimator o2= ObjectAnimator.ofFloat(img, "translationX", 0,50);o1.setDuration(3000);AnimatorSet as = new AnimatorSet();//创建集合as.playTogether(o1,o2);//设置同时运动as.start(); //启动动画
    转载请注明原文地址: https://ju.6miu.com/read-1298043.html
    最新回复(0)