Android动画分析之翻转效果

Android动画分析之翻转效果

ID:39464528

大小:105.50 KB

页数:8页

时间:2019-07-03

Android动画分析之翻转效果_第1页
Android动画分析之翻转效果_第2页
Android动画分析之翻转效果_第3页
Android动画分析之翻转效果_第4页
Android动画分析之翻转效果_第5页
资源描述:

《Android动画分析之翻转效果》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Android动画分析之翻转效果到很多人在问如何实现三维的翻转效果,所以今天在这里简单的给大家分析一下,其实在APIDemo中就有这样一个例子,那么我们就以其为例来学习Android中的翻转动画效果的实现,首先看一下运行效果如下图所示。Android中并没有提供直接做3D翻转的动画,所以关于3D翻转的动画效果需要我们自己实现,那么我们首先来分析一下Animation和Transformation。Animation动画的主要接口,其中主要定义了动画的一些属性比如开始时间,持续时间,是否重复播放等等。而Transformation中则包含一个矩阵和alpha

2、值,矩阵是用来做平移,旋转和缩放动画的,而alpha值是用来做alpha动画的,要实现3D旋转动画我们需要继承自Animation类来实现,我们需要重载getTransformation和applyTransformation,在getTransformation中Animation会根据动画的属性来产生一系列的差值点,然后将这些差值点传给applyTransformation,这个函数将根据这些点来生成不同的Transformation。下面是具体实现:1.public class Rotate3dAnimation extends Animation 

3、{ 2.    //开始角度 3.    private final float mFromDegrees; 4.    //结束角度 5.    private final float mToDegrees; 6.    //中心点 7.    private final float mCenterX; 8.    private final float mCenterY; 9.    private final float mDepthZ; 10.    //是否需要扭曲 11.    private final boolean mReverse; 1

4、2.    //摄像头 13.    private Camera mCamera; 1.    public Rotate3dAnimation(float fromDegrees, float toDegrees, 2.            float centerX, float centerY, float depthZ, boolean reverse) { 3.        mFromDegrees = fromDegrees; 4.        mToDegrees = toDegrees; 5.        mCenterX = c

5、enterX; 6.        mCenterY = centerY; 7.        mDepthZ = depthZ; 8.        mReverse = reverse; 9.    } 10. 11.    @Override 12.    public void initialize(int width, int height, int parentWidth, int parentHeight) { 13.        super.initialize(width, height, parentWidth, parentHeig

6、ht); 14.        mCamera = new Camera(); 15.    } 16.    //生成Transformation 17.    @Override 18.    protected void applyTransformation(float interpolatedTime, Transformation t) { 19.        final float fromDegrees = mFromDegrees; 20.        //生成中间角度 21.        float degrees = fromD

7、egrees + ((mToDegrees - fromDegrees) * interpolatedTime); 22. 23.        final float centerX = mCenterX; 24.        final float centerY = mCenterY; 25.        final Camera camera = mCamera; 26. 27.        final Matrix matrix = t.getMatrix(); 28. 29.        camera.save(); 30.      

8、  if (mReverse) { 31.            

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。