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