Android 动画-->自定义3D动画效果和模拟电视机关闭效果的动画
2017-02-21 14:56
561 查看
3D动画效果
电视机关闭动画效果
项目名称:CustomAnim
电视机关闭动画效果
3D动画效果
结合矩阵,并使用Camera类来实现一个自定义的3D动画效果。这里的Camera指的是android.graphics.Camera中的Camera类,它封装了openGL的3D动画,从而可以非常方便的创建3D动画效果。public class CustomAnim extends Animation { private int mCenterWidth; private int mCenterHeight; private Camera mCamera = new Camera(); private float mRotateY = 0.0f; @Override public void initialize(int width, int height, int parentWidth, int parentHeight) { super.initialize(width, height, parentWidth, parentHeight); // 设置默认时长 setDuration(2000); // 动画结束后保留状态 setFillAfter(true); // 设置默认插值器 setInterpolator(new BounceInterpolator()); mCenterWidth = width / 2; mCenterHeight = height / 2; } //暴露接口,设置旋转角度 public void setRotateY(float rotateY){ mRotateY=rotateY; } @Override protected void applyTransformation(float interpolatedTime, Transformation t) { final Matrix matrix=t.getMatrix(); mCamera.save(); //使用Camera设置旋转的角度 mCamera.rotateY(mRotateY*interpolatedTime); //将旋转变换作用到Matrix上 mCamera.getMatrix(matrix); mCamera.restore(); //通过pre方法设置矩阵作用前的偏移量来改变旋转中心 matrix.preTranslate(mCenterWidth,mCenterHeight); matrix.postTranslate(-mCenterWidth,-mCenterHeight); } }
电视机关闭动画效果
电视机的关闭效果只需要让一个图片纵向比例不断缩小。public class CustomTV extends Animation { private int m aee5 CenterWidth; private int mCenterHeight; private float mRotateY=0.0f; private Camera camera=new Camera(); @Override public void initialize(int width, int height, int parentWidth, int parentHeight) { super.initialize(width, height, parentWidth, parentHeight); //设置默认时长 setDuration(1000); //动画结束后保留状态 setFillAfter(false); //设置默认插值器 setInterpolator(new AccelerateInterpolator()); mCenterWidth=width/2; mCenterHeight=height/2; } //暴露接口,设置旋转角度 public void setRotateY(float rotateY){ mRotateY=rotateY; } /** * * @param interpolatedTime 插值器的时间因子,这个因子是由动画当前完成的百分比和当前时间所对应的插值所计算得来的,取值范围为0到1.0 * @param t 它是矩阵的封装类,一般使用这个类来获取当前的矩阵对象 */ @Override protected void applyTransformation(float interpolatedTime, Transformation t) { final Matrix matrix=t.getMatrix(); //让一个图像纵向比例不断缩小就能实现电视机关闭的效果 matrix.preScale(1,1-interpolatedTime,mCenterWidth,mCenterHeight); } }
项目名称:CustomAnim
相关文章推荐
- 【2013-09-10 09:52 星期二 Android动画------ 模拟电视机关闭屏幕效果】
- Android进阶学习-自定义动画(电视关闭效果)
- Android 模拟电视机开关机的动画效果
- Android UI设计之<二>自定义SwitchButton开关,实现类似IOS中UISwitch的动画效果
- Android 自定义Dialog并指定其显示位置和动画效果
- <转>Android动画开发—Animation动画效果详解
- Android自定义progressDialog实现loading载中动画效果
- Android自定义Activity酷炫的动画跳转效果
- Android自定义progressDialog实现 loading 载入中 动画效果
- Android UI设计之<四>自定义TextView属性,实现带边框效果的TextView
- Android电视关闭的闪屏动画效果
- Android UI:看看Google官方自定义带旋转动画的ImageView-----RotateImageView怎么写(附 图片淡入淡出效果)
- Android电视关闭的动画效果
- Android 自定义SlidingMenu 实现QQ5.0侧滑菜单动画效果
- android:模拟水波效果的自定义View
- Android UI:看看Google官方自定义带旋转动画的ImageView-----RotateImageView怎么写(附 图片淡入淡出效果)
- Android 电视关闭的动画效果
- Android电视关闭的动画效果
- Android动画效果和怎样使用自定义动画的总结
- Android自定义ViewPager(一)——自定义Scroller模拟动画过程