属性动画
来源:互联网 发布:淘宝4星怎么贷款 编辑:程序博客网 时间:2024/06/05 04:53
translationX 与 X 区别
第一个是偏移量
第二个是结果
ObjectAnimator
实现Animator框架功能
属性动画常用属性
动画的监听
1 多个属性动画是异步执行的,但是多个动画执行不建议直接使用
2 方式1:建造多个propertyValueHolder,然后通过ObjectAnimator.ofPropertyValueHolder,全部传进去
3 方式2:通过AnimatorSet set.playTogether()
AnimatorSet可以控制动画执行的顺序————before after with(同时)
顺序执行方法 set.playSequentially();
动画监听:
可以通过Animator.addListener实现
如果不想重写所有方法,可以通过设置监听适配器addLIstenerAdapter,复写你需要的那个方法
动画效果可以通过设置差值器intercepter,ObjectAnimator.addIntercepter(new BounceIntercepter()),效果为小球落地以后回弹的效果
ValueAnimator
虽然无法直接作用于对象
不过通过这个对象可以获取到动画变化过程中的数值
总结:
常用属性:
translationX/Y
rotation、rotationX/Y
scaleX/scaleY
X/Y
alpha
常用方法 类:
ValueAnimator
ObjectAnimator
AnimatorUpdate 动画监听类
AnimatorListenerAdapter 动画监听类
PropertyValuesHolder 同时执行多个动画
AnimatorSet 同时执行多个动画
TypeEvaluators 数值计算器
Interpolators 差值器 ——加速度变化——(加速、线性变化、减速、到达终点会弹一下)
private Animator createAnimatorForView(final View view) {
final ViewGroup.LayoutParams lp = view.getLayoutParams();
final int originalHeight = view.getHeight();
ValueAnimator animator = ValueAnimator.ofInt(originalHeight, 0);
animator.addListener(new AnimatorListener() {
@Override
public void onAnimationStart(Animator arg0) {
}
@Override
public void onAnimationRepeat(Animator arg0) {
}
@Override
public void onAnimationEnd(Animator arg0) {
lp.height = 0;
view.setLayoutParams(lp);
}
@Override
public void onAnimationCancel(Animator arg0) {
}
});
animator.addUpdateListener(new AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
lp.height = (Integer) valueAnimator.getAnimatedValue();
view.setLayoutParams(lp);
}
});
return animator;
}
第一个是偏移量
第二个是结果
ObjectAnimator
实现Animator框架功能
属性动画常用属性
动画的监听
1 多个属性动画是异步执行的,但是多个动画执行不建议直接使用
2 方式1:建造多个propertyValueHolder,然后通过ObjectAnimator.ofPropertyValueHolder,全部传进去
3 方式2:通过AnimatorSet set.playTogether()
AnimatorSet可以控制动画执行的顺序————before after with(同时)
顺序执行方法 set.playSequentially();
动画监听:
可以通过Animator.addListener实现
如果不想重写所有方法,可以通过设置监听适配器addLIstenerAdapter,复写你需要的那个方法
动画效果可以通过设置差值器intercepter,ObjectAnimator.addIntercepter(new BounceIntercepter()),效果为小球落地以后回弹的效果
ValueAnimator
虽然无法直接作用于对象
不过通过这个对象可以获取到动画变化过程中的数值
总结:
常用属性:
translationX/Y
rotation、rotationX/Y
scaleX/scaleY
X/Y
alpha
常用方法 类:
ValueAnimator
ObjectAnimator
AnimatorUpdate 动画监听类
AnimatorListenerAdapter 动画监听类
PropertyValuesHolder 同时执行多个动画
AnimatorSet 同时执行多个动画
TypeEvaluators 数值计算器
Interpolators 差值器 ——加速度变化——(加速、线性变化、减速、到达终点会弹一下)
private Animator createAnimatorForView(final View view) {
final ViewGroup.LayoutParams lp = view.getLayoutParams();
final int originalHeight = view.getHeight();
ValueAnimator animator = ValueAnimator.ofInt(originalHeight, 0);
animator.addListener(new AnimatorListener() {
@Override
public void onAnimationStart(Animator arg0) {
}
@Override
public void onAnimationRepeat(Animator arg0) {
}
@Override
public void onAnimationEnd(Animator arg0) {
lp.height = 0;
view.setLayoutParams(lp);
}
@Override
public void onAnimationCancel(Animator arg0) {
}
});
animator.addUpdateListener(new AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
lp.height = (Integer) valueAnimator.getAnimatedValue();
view.setLayoutParams(lp);
}
});
return animator;
}
0 0
- 属性动画
- 属性动画
- 属性动画
- 属性动画
- 属性动画
- 属性动画
- 属性动画
- 属性动画
- 属性动画
- 属性动画
- 属性动画
- 属性动画
- 属性动画
- 属性动画
- 属性动画
- 属性动画
- 属性动画
- 属性动画
- 一个节省空间的小技巧
- ntohs的一个简单实现(将网络流中用两个字节16进制表示的资源数(如DNS)和长度转换为整形)
- opencv contours的问题
- C#中的@符号用法
- 【leetcode】27. Remove Element
- 属性动画
- 介绍一个二次排序的小技巧(best coder27期1001jump jump jump)
- Git命令实战总结
- 杭电OJ BestCoder28期1001Missing number问题(小技巧偏移法)
- iOS RSA加密和解密
- wordpress文章导入csdn
- 内存泄漏与内存溢出的区别
- 导航条下 ScrollView 第一个View去掉向下偏移的64px
- 【bzoj3522】【poi2014】【hotel】【树形dp】