zoukankan      html  css  js  c++  java
  • Android 属性动画监听事件与一个菜单的例子

    简单监听事件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    package com.example.animation;
     
    import android.animation.Animator;
    import android.animation.Animator.AnimatorListener;
    import android.animation.AnimatorListenerAdapter;
    import android.animation.AnimatorSet;
    import android.animation.ObjectAnimator;
    import android.animation.PropertyValuesHolder;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.animation.Animation;
    import android.view.animation.AnimationSet;
    import android.view.animation.TranslateAnimation;
    import android.widget.ImageView;
    import android.widget.Toast;
     
    public class MainActivity extends Activity {
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
         
        }
         
        public void click(View view){
            Toast.makeText(this, "click", Toast.LENGTH_SHORT).show();
        }
         
        public void move(View view ){
            ImageView imageView=(ImageView)findViewById(R.id.imageView);
            ObjectAnimator animator=new ObjectAnimator().ofFloat(imageView, "translationX", 0f,200f);
            animator.setDuration(1000);
            /**
             *添加所有监听事件
             */
    //        animator.addListener(new AnimatorListener() {
    //         
    //          @Override
    //          public void onAnimationStart(Animator arg0) {
    //          }
    //         
    //          @Override
    //          public void onAnimationRepeat(Animator arg0) {
    //          }
    //         
    //          @Override
    //          public void onAnimationEnd(Animator arg0) {
    //              Toast.makeText(MainActivity.this, "animator is end!",Toast.LENGTH_SHORT).show();
    //          }
    //         
    //          @Override
    //          public void onAnimationCancel(Animator arg0) {
    //          }
    //      });
             
            /**
             * 按需添加
             */
            animator.addListener(new AnimatorListenerAdapter() {
                @Override
                public void onAnimationEnd(Animator animation) {
                    // TODO Auto-generated method stub
                    super.onAnimationEnd(animation);
                    Toast.makeText(MainActivity.this, "animator is end!",Toast.LENGTH_SHORT).show();
     
                }
            });
            animator.start();
        }
          
    }


    看一个简单的例子

    这是xml

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <frameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="com.example.animator.MainActivity" >
     
        <imageview android:id="@+id/imageView2" android:layout_width="50dp" android:layout_height="50dp" android:src="@drawable/image_b">
     
        <imageview android:id="@+id/imageView3" android:layout_width="50dp" android:layout_height="50dp" android:src="@drawable/image_c">
     
        <imageview android:id="@+id/imageView4" android:layout_width="50dp" android:layout_height="50dp" android:src="@drawable/image_d">
     
        <imageview android:id="@+id/imageView5" android:layout_width="50dp" android:layout_height="50dp" android:src="@drawable/image_e">
     
        <imageview android:id="@+id/imageView6" android:layout_width="50dp" android:layout_height="50dp" android:src="@drawable/image_f">
     
        <imageview android:id="@+id/imageView7" android:layout_width="50dp" android:layout_height="50dp" android:src="@drawable/image_g">
     
        <imageview android:id="@+id/imageView8" android:layout_width="50dp" android:layout_height="50dp" android:src="@drawable/image_h">
         
        <imageview android:id="@+id/imageView1" android:layout_width="50dp" android:layout_height="50dp" android:src="@drawable/image_a">
         
     
    </frameLayout></imageview></imageview></imageview></imageview></imageview></imageview></imageview></imageview>


    这是主程序

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    package com.example.animator;
     
    import java.util.ArrayList;
    import java.util.List;
     
    import android.animation.ObjectAnimator;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.animation.BounceInterpolator;
    import android.widget.ImageView;
    import android.widget.Toast;
     
    public class MainActivity extends Activity implements OnClickListener {
     
        private int[] res = { R.id.imageView1, R.id.imageView2, R.id.imageView3,
                R.id.imageView4, R.id.imageView5, R.id.imageView6, R.id.imageView7,
                R.id.imageView8 };
        private List<imageview> imageViewList = new ArrayList<imageview>();
        private boolean isOpen = false;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            for (int i = 0; i < res.length; i++) {
                ImageView imageView = (ImageView) findViewById(res[i]);
                imageView.setOnClickListener(this);
                imageViewList.add(imageView);
            }
        }
     
        @Override
        public void onClick(View view) {
            switch (view.getId()) {
            case R.id.imageView1:
                if (!isOpen) {
                    startAnim();
                } else {
                    closeAnim();
                }
                break;
     
            default:
                Toast.makeText(this, "you click item!", Toast.LENGTH_SHORT).show();
                break;
            }
        }
     
        private void startAnim() {
            for (int i = 1; i < res.length; i++) {
                ObjectAnimator animator = ObjectAnimator.ofFloat(
                        imageViewList.get(i), "translationY", 0f, i * 150);
                animator.setDuration(500);
                // 动画差值器, Interpolator
                // 被用来修饰动画效果,定义动画的变化率,可以使存在的动画效果accelerated(加速),decelerated(减速),repeated(重复),bounced(弹跳)等。
                animator.setInterpolator(new BounceInterpolator());
                animator.setStartDelay(i * 350);
                animator.start();
                isOpen = true;
            }
        }
     
        private void closeAnim() {
            for (int i = 1; i < res.length; i++) {
                ObjectAnimator animator = ObjectAnimator.ofFloat(
                        imageViewList.get(i), "translationY", i * 150, 0f);
                animator.setDuration(500);
                animator.setInterpolator(new BounceInterpolator());
                animator.setStartDelay(i * 350);
                animator.start();
                isOpen = false;
            }
        }
     
    }
    </imageview></imageview>
     

    结伴旅游,一个免费的交友网站:www.jieberu.com

    推推族,免费得门票,游景区:www.tuituizu.com

  • 相关阅读:
    深圳移动 神州行(大众卡/轻松卡/幸福卡)套餐资费(含香港日套餐)信息及使用方法
    PHP设置时区,记录日志文件的方法
    微信公众平台消息接口使用指南
    C#日期时间格式化
    使用CMD实现批量重命名[转]
    Python高效编程技巧
    实用WordPress后台MySQL操作命令
    ubuntu-wine
    Javascript 笔记与总结(2-8)对象2
    Swift5.3 语言指南(十) 枚举
  • 原文地址:https://www.cnblogs.com/rabbit-bunny/p/4260044.html
Copyright © 2011-2022 走看看