zoukankan      html  css  js  c++  java
  • 属性动画ValueAnimator用法

    用法举例:

    1. ValueAnimator animator = ValueAnimator.ofInt(0,100);//定义animator

    2. animator.addUpdateListener//添加更新监听事件

    3. animator.setDuration//设置属性动画时长

    4. animator.start//开启属性动画

    报错说明api版本太低,要导入nineold jar包

    也许是开发者他女儿9岁了的时候开发出来的兼容包,哈哈

    nineoldandroids-2.4.0.jar

    java代码:

     1   private boolean isOpen = false;// 标记安全描述开关状态,默认关
     2 
     3     // 打开或者关闭安全描述信息(如果是打开状态就关闭,如果是关闭状态就打开)
     4     // 导入jar包: nineoldandroids-2.4.0.jar
     5     protected void toggle() {
     6         ValueAnimator animator = null;
     7         if (isOpen) {
     8             // 关闭
     9             isOpen = false;
    10             // 属性动画
    11             animator = ValueAnimator.ofInt(mDesHeight, 0);// 从某个值变化到某个值
    12         } else {
    13             // 开启
    14             isOpen = true;
    15             // 属性动画
    16             animator = ValueAnimator.ofInt(0, mDesHeight);
    17         }
    18 
    19         // 动画更新的监听
    20         animator.addUpdateListener(new AnimatorUpdateListener() {
    21 
    22             // 启动动画之后, 会不断回调此方法来获取最新的值
    23             @Override
    24             public void onAnimationUpdate(ValueAnimator animator) {
    25                 // 获取最新的高度值
    26                 Integer height = (Integer) animator.getAnimatedValue();
    27 
    28                 System.out.println("最新高度:" + height);
    29 
    30                 // 重新修改布局高度
    31                 mParams.height = height;
    32                 llDesRoot.setLayoutParams(mParams);
    33             }
    34         });
    35 
    36         animator.addListener(new AnimatorListener() {
    37 
    38             @Override
    39             public void onAnimationStart(Animator arg0) {
    40 
    41             }
    42 
    43             @Override
    44             public void onAnimationRepeat(Animator arg0) {
    45 
    46             }
    47 
    48             @Override
    49             public void onAnimationEnd(Animator arg0) {
    50                 // 动画结束的事件
    51                 // 更新小箭头的方向
    52                 if (isOpen) {
    53                     ivArrow.setImageResource(R.drawable.arrow_up);
    54                 } else {
    55                     ivArrow.setImageResource(R.drawable.arrow_down);
    56                 }
    57             }
    58 
    59             @Override
    60             public void onAnimationCancel(Animator arg0) {
    61 
    62             }
    63         });
    64 
    65         animator.setDuration(200);// 动画时间
    66         animator.start();// 启动动画
    67     }

    运行效果图: 

    附加:安卓动画总结http://www.cnblogs.com/johnsonwei/p/5705659.html

  • 相关阅读:
    Java8部分新特性的学习
    SurfaceView的基本使用
    Android Apk的反编译和加密
    Notification的基本用法以及使用RemoteView实现自定义布局
    Anroid事件分发
    Xmpp学习之Asmack取经-asmack入门(一)
    android通过DialogFragment实现时间选择
    使用官方Android-support-v7在低版本上使用ActionBarActivity
    五一后总结
    Android在有存储卡和无存储卡情况下拍照后固定尺寸和压缩大小
  • 原文地址:https://www.cnblogs.com/johnsonwei/p/5672122.html
Copyright © 2011-2022 走看看