//渐入渐出
<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);
//指定view
a.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);
//给动画指定view
as.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(); //启动动画