android 动画
来源:互联网 发布:宋松淘宝模特 编辑:程序博客网 时间:2024/06/16 14:23
public class AnimationHelper{ private static int mOrderIndex = 0; /** * 渐变放大显示 * @param view 动画展示View * @param duration 动画的持续时间 * @param delay 动画的Delay时间 */ public static void doScaleInAnimation(View view, long duration, long delay) { view.setAlpha(0f); PropertyValuesHolder alpha = PropertyValuesHolder.ofFloat("alpha", 0f, 1f); PropertyValuesHolder pvhX = PropertyValuesHolder.ofFloat("scaleX", 0f, 1f); PropertyValuesHolder pvhY = PropertyValuesHolder.ofFloat("scaleY", 0f, 1f); ObjectAnimator objectAnimator = ObjectAnimator.ofPropertyValuesHolder(view, alpha, pvhX, pvhY); objectAnimator.setInterpolator(new AccelerateInterpolator(2.0f)); objectAnimator.setDuration(duration); objectAnimator.setStartDelay(delay); objectAnimator.start(); } /** * 渐变缩小消失 * @param view 动画展示View * @param duration 动画的持续时间 * @param delay 动画的Delay时间 */ public static void doScaleOutAnimation(View view, long duration, long delay) { PropertyValuesHolder alpha = PropertyValuesHolder.ofFloat("alpha", 1f, 0f); PropertyValuesHolder pvhX = PropertyValuesHolder.ofFloat("scaleX", 1f, 0f); PropertyValuesHolder pvhY = PropertyValuesHolder.ofFloat("scaleY", 1f, 0f); ObjectAnimator objectAnimator = ObjectAnimator.ofPropertyValuesHolder(view, alpha, pvhX, pvhY); objectAnimator.setInterpolator(new DecelerateInterpolator(2.0f)); objectAnimator.setDuration(duration); objectAnimator.setStartDelay(delay); objectAnimator.start(); } /** * 渐变缩小消失,并且移除View * @param view 动画展示View * @param duration 动画的持续时间 * @param delay 动画的Delay时间 */ public static void fadeOut(final View view, long duration, long delay) { PropertyValuesHolder alpha = PropertyValuesHolder.ofFloat("alpha", 1f, 0f); PropertyValuesHolder pvhX = PropertyValuesHolder.ofFloat("scaleX", 1f, 0f); PropertyValuesHolder pvhY = PropertyValuesHolder.ofFloat("scaleY", 1f, 0f); ObjectAnimator objectAnimator = ObjectAnimator.ofPropertyValuesHolder(view, alpha, pvhX, pvhY); objectAnimator.setInterpolator(new DecelerateInterpolator(2.0f)); objectAnimator.setDuration(duration); objectAnimator.setStartDelay(delay); //动画结束后,移除View objectAnimator.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { ViewGroup parent = (ViewGroup)view.getParent(); if (null != parent) { parent.removeView(view); } } }); // anim.addListener(new AnimatorListener() // { // // @Override // public void onAnimationStart(Animator animation) // { // } // // @Override // public void onAnimationRepeat(Animator animation) // { // } // // @Override // public void onAnimationEnd(Animator animation) // { // ViewGroup parent = (ViewGroup)view.getParent(); // if (parent != null) // parent.removeView(view); // } // // @Override // public void onAnimationCancel(Animator animation) // { // } // }); objectAnimator.start(); } public static void startViewGroupAnimation(View view, long duration, long delay) { mOrderIndex = 0; bindAnimation(view, 0, duration, delay); } private static void bindAnimation(View view, int depth, long duration, long delay) { if (view instanceof ViewGroup) { ViewGroup group = (ViewGroup)view; for (int i = 0; i < group.getChildCount(); i++) { bindAnimation(group.getChildAt(i), depth + 1, duration, delay); } } else { doSlideLeftEnterAnimation(view, duration, delay * mOrderIndex); mOrderIndex++; } } /** * 从左边进场 * @param view * @param delay */ public static void doSlideLeftEnterAnimation(View view, long duration,long delay) { view.setAlpha(0); ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(view, "translationX", -300, 0); objectAnimator.setInterpolator(new DecelerateInterpolator()); ObjectAnimator objectAnimatorAlpha = ObjectAnimator.ofFloat(view, "alpha", 0f, 1f); AnimatorSet set = new AnimatorSet(); set.setStartDelay(delay); set.setDuration(duration); set.playTogether(objectAnimator, objectAnimatorAlpha); set.start(); } /** * 从左边退场 * @param view * @param delay */ public static void doSlideLeftOutAnimation(View view, long duration,long delay) { view.setAlpha(0); ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(view, "translationX", 0, -300); objectAnimator.setInterpolator(new DecelerateInterpolator()); ObjectAnimator objectAnimatorAlpha = ObjectAnimator.ofFloat(view, "alpha", 1f, 0f); AnimatorSet set = new AnimatorSet(); set.setStartDelay(delay); set.setDuration(duration); set.playTogether(objectAnimator, objectAnimatorAlpha); set.start(); } /** * 从右边进场 * @param view * @param delay */ public static void doSlideRightEnterAnimation(View view, long duration,long delay) { view.setAlpha(0); ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(view, "translationX", 300, 0); objectAnimator.setInterpolator(new DecelerateInterpolator()); ObjectAnimator objectAnimatorAlpha = ObjectAnimator.ofFloat(view, "alpha", 0f, 1f); AnimatorSet set = new AnimatorSet(); set.setStartDelay(delay); set.setDuration(duration); set.playTogether(objectAnimator, objectAnimatorAlpha); set.start(); } /** * 从右边退场 * @param view * @param delay */ public static void doSlideRightOutAnimation(View view, long duration,long delay) { view.setAlpha(0); ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(view, "translationX", 0, 300); objectAnimator.setInterpolator(new DecelerateInterpolator()); ObjectAnimator objectAnimatorAlpha = ObjectAnimator.ofFloat(view, "alpha", 1f, 0f); AnimatorSet set = new AnimatorSet(); set.setStartDelay(delay); set.setDuration(duration); set.playTogether(objectAnimator, objectAnimatorAlpha); set.start(); } /** * 从上边进场 * @param view * @param delay */ public static void doSlideTopEnterAnimation(View view, long duration,long delay) { view.setAlpha(0); ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(view, "translationY", -600, 0); objectAnimator.setInterpolator(new DecelerateInterpolator()); ObjectAnimator objectAnimatorAlpha = ObjectAnimator.ofFloat(view, "alpha", 0f, 1f); AnimatorSet set = new AnimatorSet(); set.setStartDelay(delay); set.setDuration(duration); set.playTogether(objectAnimator, objectAnimatorAlpha); set.start(); } /** * 从上边退场 * @param view * @param delay */ public static void doSlideTopOutAnimation(View view, long duration,long delay) { view.setAlpha(0); ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(view, "translationY", 0, -600); objectAnimator.setInterpolator(new DecelerateInterpolator()); ObjectAnimator objectAnimatorAlpha = ObjectAnimator.ofFloat(view, "alpha", 1f, 0f); AnimatorSet set = new AnimatorSet(); set.setStartDelay(delay); set.setDuration(duration); set.playTogether(objectAnimator, objectAnimatorAlpha); set.start(); } /** * 从下边进场 * @param view * @param delay */ public static void doSlideBottomEnterAnimation(View view, long duration,long delay) { view.setAlpha(0); ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(view, "translationY", 600, 0); objectAnimator.setInterpolator(new DecelerateInterpolator()); ObjectAnimator objectAnimatorAlpha = ObjectAnimator.ofFloat(view, "alpha", 0f, 1f); AnimatorSet set = new AnimatorSet(); set.setStartDelay(delay); set.setDuration(duration); set.playTogether(objectAnimator, objectAnimatorAlpha); set.start(); } /** * 从下边退场 * @param view * @param delay */ public static void doSlideBottomOutAnimation(View view, long duration,long delay) { view.setAlpha(0); ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(view, "translationY", 0, 600); objectAnimator.setInterpolator(new DecelerateInterpolator()); ObjectAnimator objectAnimatorAlpha = ObjectAnimator.ofFloat(view, "alpha", 1f, 0f); AnimatorSet set = new AnimatorSet(); set.setStartDelay(delay); set.setDuration(duration); set.playTogether(objectAnimator, objectAnimatorAlpha); set.start(); }}
0 0
- Android动画--视图动画
- Android动画--属性动画
- android动画 -- 属性动画
- Android:动画:tween动画
- Android:动画:Frame动画
- Android动画动画二
- Android动画-属性动画
- Android动画【属性动画】
- Android动画-帧动画
- Android动画--帧动画
- Android动画--属性动画
- Android动画-View动画
- android 动画 -- tween动画
- android 动画
- android动画
- android动画
- android动画
- Android动画
- 判断手机号 h5
- 下载OSM地图数据并导入至postgreSQL数据库中(Ubuntu16.04LTS)
- 编写一个函数实现n^k,使用递归实现
- Memory Management (DXE) 实例分析
- 四、算法_动态规划
- android 动画
- 简单枚举类型——植物与颜色
- linux 搭建git远程库
- BZOJ 1898 构造矩阵+矩阵快速幂
- 数据可视化相关内容
- javascript match方法获取url参数的正则表达式(用来获取某个参数值)很重要!!!!!
- 【leetcode】121. Best Time to Buy and Sell Stock【java】
- linux搭建svn版本控制器
- 模板引擎beetl+springboot