抖动效果
来源:互联网 发布:vb picturebox加载图片 编辑:程序博客网 时间:2024/05/16 16:55
工作中用到的,看到这篇文章 Android中使用抖动动画吸引来用户注意学习总结一下,方便理解使用
动画主要使用了Keyframe和PropertyValuesHolder。PropertyValuesHolder保存了view的属性的信息以及在动画进行过程中该属性的值。通过PropertyValuesHolder.ofKeyframe方法来构建PropertyValuesHolder的实例,
该方法接收一个属性名以及多个Keyframe对象作为参数。当你想通过动画改变多个属性的时候PropertyValuesHolder就非常有用。
上下抖动方法:
抖动的原理就是对view的x轴和y轴进行0.9倍到1.1倍的缩放,同时对view进行一定角度的上下旋转。public ObjectAnimator upDown(View view, float shakeFactor) { PropertyValuesHolder pvhScaleX = PropertyValuesHolder.ofKeyframe(View.SCALE_X, Keyframe.ofFloat(0f, 1f), Keyframe.ofFloat(.1f, .9f), Keyframe.ofFloat(.2f, .9f), Keyframe.ofFloat(.3f, 1.1f), Keyframe.ofFloat(.4f, 1.1f), Keyframe.ofFloat(.5f, 1.1f), Keyframe.ofFloat(.6f, 1.1f), Keyframe.ofFloat(.7f, 1.1f), Keyframe.ofFloat(.8f, 1.1f), Keyframe.ofFloat(.9f, 1.1f), Keyframe.ofFloat(1f, 1f) ); PropertyValuesHolder pvhScaleY = PropertyValuesHolder.ofKeyframe(View.SCALE_Y, Keyframe.ofFloat(0f, 1f), Keyframe.ofFloat(.1f, .9f), Keyframe.ofFloat(.2f, .9f), Keyframe.ofFloat(.3f, 1.1f), Keyframe.ofFloat(.4f, 1.1f), Keyframe.ofFloat(.5f, 1.1f), Keyframe.ofFloat(.6f, 1.1f), Keyframe.ofFloat(.7f, 1.1f), Keyframe.ofFloat(.8f, 1.1f), Keyframe.ofFloat(.9f, 1.1f), Keyframe.ofFloat(1f, 1f) ); PropertyValuesHolder pvhRotate = PropertyValuesHolder.ofKeyframe(View.ROTATION, Keyframe.ofFloat(0f, 0f), Keyframe.ofFloat(.1f, -3f * shakeFactor), Keyframe.ofFloat(.2f, -3f * shakeFactor), Keyframe.ofFloat(.3f, 3f * shakeFactor), Keyframe.ofFloat(.4f, -3f * shakeFactor), Keyframe.ofFloat(.5f, 3f * shakeFactor), Keyframe.ofFloat(.6f, -3f * shakeFactor), Keyframe.ofFloat(.7f, 3f * shakeFactor), Keyframe.ofFloat(.8f, -3f * shakeFactor), Keyframe.ofFloat(.9f, 3f * shakeFactor), Keyframe.ofFloat(1f, 0) ); ObjectAnimator.ofPropertyValuesHolder(view, pvhScaleX, pvhScaleY, pvhRotate).setDuration(1000); }
左右抖动:就是对view进行x轴的平移。
public ObjectAnimator nope(View view) {
int delta = view.getResources().getDimensionPixelOffset(R.dimen.spacing_medium);
PropertyValuesHolder pvhTranslateX = PropertyValuesHolder.ofKeyframe(View.TRANSLATION_X, Keyframe.ofFloat(0f, 0), Keyframe.ofFloat(.10f, -delta), Keyframe.ofFloat(.26f, delta), Keyframe.ofFloat(.42f, -delta), Keyframe.ofFloat(.58f, delta), Keyframe.ofFloat(.74f, -delta), Keyframe.ofFloat(.90f, delta), Keyframe.ofFloat(1f, 0f));return ObjectAnimator.ofPropertyValuesHolder(view, pvhTranslateX). setDuration(500);
}
阅读全文
0 0
- 抖动效果
- 抖动效果
- 抖动效果
- 抖动效果
- 窗口抖动效果
- Button的抖动效果
- ios 抖动动画效果
- ios抖动动画效果
- android实现抖动效果
- QQ抖动效果
- Cocos2d-x 抖动效果
- 抖动动画效果
- DIV飞入 抖动效果
- 窗口抖动效果
- 窗口抖动效果
- Android控件抖动效果
- cocos2dx屏幕抖动效果
- css3动画 抖动效果
- python第一篇
- SQL 通过时间计算年龄
- TensorFlow循环神经网络系列实践教程
- eclipse 项目转AS遇到的问题
- 拼图游戏可解性判断,自动生成可解拼图
- 抖动效果
- 调用类中的属性和方法
- JVM调优总结(5):典型配置
- npm全局安装与本地安装
- Jsp:useBean jsp:setProperty
- HTML散点图(Scatter Plot)的三种不同实现方式性能比较
- 【Spring】Spring Framework Reference Documentation中文版20
- Linux mysql5.7.18创建数据库并授权用户
- 用通俗易懂的话说下hadoop是什么,能做什么