补间动画只是在显示时改变了图片在屏幕上的绘制
实际上组件的位置还在原处没有改变
而属性动画则真正是改变图片的一系列属性,如位置、尺寸、透明度等
看完视频做笔记=_=
中午不吃黄焖鸡+_+
属性动画:ObjectAnimator / PorpertyAnimator
ImageView iv = findViewId(R.id.draw);
public void Porperty()
//设置属性 平移
ObjectAnimator oa1 =ObjectAnimator.
ofFloat(iv,"translateX",10,70,20,100);
oa1.setDurtion(2000);
oa1.setRepetCount(1);
//设置属性 缩放
ObjectAnimator oa2 =ObjectAnimator.
ofFloat(iv,"scaleX",0.5f,1,1,1.2f);
oa2.setDurtion(2000);
oa2.setRepetCount(1);
//设置属性 透明
ObjectAnimator oa3 =ObjectAnimator.
ofFloat(iv,"alpha",0.5f,1,0.2f,1);
oa3.setDurtion(2000);
oa3.setRepetCount(1);
}
ObjectAnimator oa1 =ObjectAnimator.ofFloat(iv,”translateX”,10,70,20,100);
- iv:目标图片
- translateX:目标图片的属性,一次只能操作一条,X/Y是不同属性
- 后面的属性就是正常的变换,但是可以重复变换,如从10移动到70,再移动到20,再移动到100之类
多次操作合并进行
AnimatorSet set = new AnimatorSet();
//合并操作对象
......
set.playSequentially(oa1,oa2,oa3);
//传如需要操作的条目,如上面写的平移缩放透明,按传入顺序操作,Sequentially是序列的意思
set.playTogether(items);
//传入动画一起进行
set.start();
使用xml文件定义属性动画
定义类型 Property Animation
节点:
<objectAnimator>
//因为是在网页上手打的 所以简化了
propertyName="translateX"
duration="200"
repeatCount="1"
repeatMode="reverse"
valueFrom="-50"
valueTo="100"
</objectAnimator>
在java文件中使用xml属性动画
首先需要填充
在这里,使用的是动画填充器
Animator at = AnimatorInflater.loadAnimator(this,.animator.objectanimator);
at.setTarget(iv);
//设置作用于哪个组件上
at.start();
午睡之后,虽是燥热,却也没了难解的困意。
不知怎的想起一句诗:近乡情更怯,不敢问来人。