Android实现动画的实现方式
来源:互联网 发布:u盘安装系统mac 编辑:程序博客网 时间:2024/06/05 18:44
Android实现动画的方式有很多,其中第一种方式是
建立一个xml的文件写在里面
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <!-- fromAlpha和toAlpha是起始透明度和结束时透明度 --> <alpha android:duration="500" android:fromAlpha="1.0" android:startOffset="500" android:toAlpha="0.0" /> <!--旋转 fromDegrees:开始的角度 toDegrees:结束的角度,+表示是正的 pivotX:用于设置旋转时的x轴坐标 例(1)当值为"50",表示使用绝对位置定位(2)当值为"50%",表示使用相对于控件本身定位(3)当值为"50%p",表示使用相对于控件的父控件定位 pivotY:用于设置旋转时的y轴坐标 --> <rotate android:duration="1000" android:fromDegrees="0" android:pivotX="50%" android:pivotY="50%" android:toDegrees="+360" /> <!-- 渐变尺寸缩小 fromXScale 起始x轴坐标 toXScale 止x轴坐标 fromYScale 始y轴坐标 toYScale 止y轴坐标 toXScale 以X轴的坐标为轴 toYScale 以Y轴的坐标为轴--> <scale android:duration="1000" android:fromXScale="1.0" android:fromYScale="1.0" android:pivotX="50%" android:pivotY="50%" android:toXScale="0.0" android:toYScale="0.0" /> <!-- 移动动画 fromXDelta 始x轴坐标 toXDelta 止x轴坐标 fromYDelta 始y轴坐标 toYDelta 止y轴坐标 --> <translate android:fromXDelta="0%" android:toXDelta="100%" android:fromYDelta="0%" android:toYDelta="100%" android:duration="2000"/></set>
/第一个参数Context为程序的上下文 //第二个参数id为动画XML文件的引用//例子:Animation myAnimation= AnimationUtils.loadAnimation(this,R.anim.my_anim);//使用AnimationUtils类的静态方法loadAnimation()来加载XML中的动画XML文件
第二种方式
//缩放 从哪里开始 item_gv_popupwindow.setPivotX(300); item_gv_popupwindow.setPivotY(100);// ObjectAnimator// .ofFloat(item_gv_popupwindow, "pivotX", this.getWallpaperDesiredMinimumWidth() / 2)//// .setDuration(0)// // .start();// ObjectAnimator// .ofFloat(item_gv_popupwindow, "scaleX", 0.0F, 1.0F)//// .setDuration(3000)// // .start();// ObjectAnimator// .ofFloat(item_gv_popupwindow, "scaleY", 0.0F, 1.0F)//// .setDuration(3000)// //// .start(); //旋转// ObjectAnimator// .ofFloat(item_gv_popupwindow, "pivotX", this.getWallpaperDesiredMinimumWidth() / 4)//// .setDuration(0)// // .start();// ObjectAnimator// .ofFloat(item_gv_popupwindow, "rotationY", 0.0F, 360.0F)//// .setDuration(3000)// // .start(); //透明// ObjectAnimator// .ofFloat(item_gv_popupwindow, "alpha", 0.0F, 1.0F)//// .setDuration(3000)// // .start(); //移动// ObjectAnimator// .ofFloat(item_gv_popupwindow, "translationX", 100.0F, 0.0f,-50f,300.0F)//// .setDuration(3000)// // .start();//多种动画渐变写法 PropertyValuesHolder pvhX = PropertyValuesHolder.ofFloat("alpha", 0f, 1f); PropertyValuesHolder pvhY = PropertyValuesHolder.ofFloat("scaleX", 0, 1f); PropertyValuesHolder pvhh = PropertyValuesHolder.ofFloat("pivotX", 300,400); PropertyValuesHolder pvhi = PropertyValuesHolder.ofFloat("pivotY", 200,100); PropertyValuesHolder pvhZ = PropertyValuesHolder.ofFloat("scaleY", 0, 1f); ObjectAnimator.ofPropertyValuesHolder(item_gv_popupwindow, pvhX, pvhh,pvhi,pvhY, pvhZ).setDuration(3000).start();// 同时执行动画 ObjectAnimator anim1 = ObjectAnimator.ofFloat(mBlueBall, "scaleX", 1.0f, 2f); ObjectAnimator anim2 = ObjectAnimator.ofFloat(mBlueBall, "scaleY", 1.0f, 2f); AnimatorSet animSet = new AnimatorSet(); animSet.setDuration(2000); animSet.setInterpolator(new LinearInterpolator()); //两个动画同时执行 animSet.playTogether(anim1, anim2); animSet.start(); // anim1,anim2,anim3同时执行 anim4接着执行 float cx = mBlueBall.getX(); ObjectAnimator anim1 = ObjectAnimator.ofFloat(mBlueBall, "scaleX", 1.0f, 2f); ObjectAnimator anim2 = ObjectAnimator.ofFloat(mBlueBall, "scaleY", 1.0f, 2f); ObjectAnimator anim3 = ObjectAnimator.ofFloat(mBlueBall, "x", cx , 0f); ObjectAnimator anim4 = ObjectAnimator.ofFloat(mBlueBall, "x", cx); /** * anim1,anim2,anim3同时执行 * anim4接着执行 */ AnimatorSet animSet = new AnimatorSet(); animSet.play(anim1).with(anim2); animSet.play(anim2).with(anim3); animSet.play(anim4).after(anim3); animSet.setDuration(1000); animSet.start();
1 0
- Android实现动画的实现方式
- Android 实现动画方式
- android中帧动画的实现方式
- Android动画实现方式的汇总
- android绘制动画实现方式
- android帧动画实现方式
- Android动画之帧动画实现方式
- WPF的动画实现方式
- IOS的动画实现方式
- android 动画的实现
- android动画的实现
- Android 动画的实现
- android中动画实现的两种方式
- android导航动画的两种实现方式
- android animation动画效果的两种实现方式
- 【学习笔记】android动画的不同实现方式以及要点
- android位移动画的两种实现方式
- android旋转动画的两种实现方式
- STL插入排序std::upper_bound和std::lower_bound的使用,以及通用排序类
- ORACLE 表压缩
- Web Service学习笔记
- Android控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现
- android studio常使用的插件
- Android实现动画的实现方式
- vijos_1460_拉力赛_LCA tarjan离线算法
- jQuery 核心 - noConflict() 方法
- 用java和weka进行分类
- 红黑树结构算法原理与代码解析
- 玩转 source insight --- 持续扩充
- [从头读历史] 第289节 神之物语 忒修斯的故事
- 一个悬浮窗demo
- 无法启动Print Spooler服务,错误1068,依存服务或组无法启动