Android自定义Animation实现3D翻转按钮

来源:互联网 发布:苹果手机微信数据恢复 编辑:程序博客网 时间:2024/06/05 14:27

效果图

效果图

原理

在代码中继承Animation类,我们只需要重写applyTransformation方法即可完成我们的动画定制,关键代码是使用了Camera类,可以实现视图的平移、远近(大小)和翻转等功能,直接上代码。

@Override    protected void applyTransformation(float interpolatedTime, Transformation t) {        Matrix matrix = t.getMatrix();        mCamera.save(); //保存当前状态        if (interpolatedTime > 0.5f) { //当动画进行到一半的时候,替换图片            mImageView.setImageBitmap(mBitmap);        }               mCamera.rotateY(180f * interpolatedTime);//旋转180°        mCamera.getMatrix(matrix);        matrix.preTranslate(-mCenterX, -mCenterY);        matrix.postTranslate(mCenterX, mCenterY);        mCamera.restore(); //载入之前保存的状态    }

完整代码

Github

使用方法

RotateAnimation mRotateAnimation = new RotateAnimation(mImageView, mTargetBitmap);mImageView.startAnimation(mRotateAnimation);
0 0
原创粉丝点击