【Android】【动画】自定义插值器Interpolator
16lz
2021-01-23
public class ShakeInterpolator implements Interpolator { @Override public float getInterpolation(float timeElapsed) { if (timeElapsed <= 0.25f) return timeElapsed / 0.25f; else if (timeElapsed <= 0.75f) return 1 - (timeElapsed - 0.25f) / 0.25f; else return -1 + (timeElapsed - 0.75f) / 0.25f; }}
public class ShakeAnimation extends Animation { private float dx; private float dy; public ShakeAnimation(int dx, int dy) { this.dx = dx; this.dy = dy; } @Override protected void applyTransformation(float interpolatedValue, Transformation transfer) { Matrix matrix = transfer.getMatrix(); matrix.postTranslate(interpolatedValue * dx, interpolatedValue * dy); } @Override public void initialize(int width, int height, int parentWidth, int parentHeight) { setDuration(500); setFillAfter(true); setRepeatCount(-1); setInterpolator(new ShakeInterpolator()); }}
ShakeAnimation animator = new ShakeAnimation(200, 0); layout.startAnimation(animator);
更多相关文章
- 代码中设置drawableleft
- android 3.0 隐藏 系统标题栏
- Android开发中activity切换动画的实现
- Android(安卓)学习 笔记_05. 文件下载
- Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
- 技术博客汇总
- android 2.3 wifi (一)
- AndRoid Notification的清空和修改
- Android中的Chronometer