Flip Animation for Android:

近期项目中用到了一个小动画,让物体实现一定的3D旋转效果,现记录例如以下:

public class FlipAnimation extends Animation {
private Camera mCamera; private View mFromView;
private View mToView; private float mCenterX;
private float mCenterY; private boolean mForward = true; /**
* Creates a 3D flip animation between two views.
*
* @param fromView First view in the transition.
* @param toView Second view in the transition.
*/
public FlipAnimation(View fromView, View toView) {
mFromView = fromView;
mToView = toView; setDuration(700);
setFillAfter(false);
setInterpolator(new AccelerateDecelerateInterpolator());
} public void reverse() {
mForward = false;
View switchView = mToView;
mToView = mFromView;
mFromView = switchView;
} @Override
public void initialize(int width, int height, int parentWidth, int parentHeight) {
super.initialize(width, height, parentWidth, parentHeight);
mCenterX = width / 2;
mCenterY = height / 2;
mCamera = new Camera();
} @Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
final double radians = Math.PI * interpolatedTime;
float degrees = (float)(180.0 * radians / Math.PI); if (interpolatedTime >= 0.5f) {
degrees -= 180.f;
mFromView.setVisibility(View.GONE);
mToView.setVisibility(View.VISIBLE);
} if (mForward) {
degrees = -degrees;
} final Matrix matrix = t.getMatrix();
mCamera.save();
mCamera.rotateY(degrees);
mCamera.getMatrix(matrix);
mCamera.restore();
matrix.preTranslate(-mCenterX, -mCenterY);
matrix.postTranslate(mCenterX, mCenterY);
}
}

最新文章

  1. [转载]MVVM模式原理分析及实践
  2. ubuntu下载工具uget和aria2
  3. IOS RunLoop 常驻线程的实现
  4. Python调用服务接口
  5. ASIHttpRequest 使用理解
  6. token生成过程
  7. Java集合之TreeMap
  8. Windows Server 2008R2配置MySQL Cluster
  9. 移动开单软件 手持PDA开单扫描打印系统开发介绍
  10. 5分钟让你学会用最高效的工具解析所有Json
  11. share point 读取 List数据
  12. getDimension,getDimensionPixelOffset和getDimensionPixelSize的一点说明
  13. Eclipse maven git
  14. Android数据库信息显示在listview上
  15. Linux 常用命令 (common commands for linux)
  16. Ubuntu和Windows设备共享
  17. sql prompt 缩写 快捷键
  18. Github上传更新
  19. dragino2 ar9331将LED管脚当做普通gpio使用
  20. CSS规范 - 命名规则--(来自网易)

热门文章

  1. 使用apache benchmark(ab) 测试报错汇总
  2. BFS 、DFS 解决迷宫入门问题
  3. DW8051调试终结
  4. grid.Column INT 所对应的文本
  5. mvc导航配置
  6. 使用Maven打包项目并上传到Linux服务器
  7. 基于visual Studio2013解决算法导论之044最短路径
  8. 基于visual Studio2013解决C语言竞赛题之0510求最大和
  9. 九度OnlineJudge之1022:游船出租
  10. AdbWinApi编译详解(本人亲历)