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);

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. 关于使用框架操作Oracle数据库切换MySQL
  2. SQLServer 延迟事务持久性
  3. 修改sqlserver 2008 express为混合认证模
  4. linux ,cron定时任务 备份mysql数据库
  5. 动态执行sql问题
  6. SQL SERVER 日志已满的处理方法
  7. mysql 5.7 安装错误提示总结
  8. MySQL——问题:mysql(5.7版本)目录下没有d
  9. 命令提示符下怎样停止和启动 SQL Server
  10. SQL SERVER日志文件已满处理方法