Android属性动画的监听事件

整体很简单,直接上代码吧。activity_main.xml:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     tools:context="com.example.administrator.animator_demo2.MainActivity">
 7 
 8     <Button
 9         android:id="@+id/btn_click"
10         android:layout_width="wrap_content"
11         android:layout_height="wrap_content"
12         android:layout_centerInParent="true"
13         android:text="Click" />
14 
15 </RelativeLayout>

然后是JAVA代码,MainActivity.java:

 1 package com.example.administrator.animator_demo2;
 2 
 3 import android.animation.Animator;
 4 import android.animation.AnimatorListenerAdapter;
 5 import android.animation.ObjectAnimator;
 6 import android.os.Bundle;
 7 import android.support.v7.app.AppCompatActivity;
 8 import android.view.View;
 9 import android.widget.Button;
10 import android.widget.Toast;
11 
12 public class MainActivity extends AppCompatActivity implements View.OnClickListener {
13 
14     private Button btn_click;
15 
16     @Override
17     protected void onCreate(Bundle savedInstanceState) {
18         super.onCreate(savedInstanceState);
19         setContentView(R.layout.activity_main);
20         initView();
21     }
22 
23     private void initView() {
24         btn_click = (Button) findViewById(R.id.btn_click);
25         btn_click.setOnClickListener(this);
26     }
27 
28     @Override
29     public void onClick(View v) {
30         switch (v.getId()) {
31             case R.id.btn_click:
32 //                startAnimator1();
33                 /**
34                  * startAnimator1()方法当中,一下就重写了四个监听方法,在因为有的时候,我们
35                  * 我们并不需要监听那么多,只需要其中的onAnimationEnd()方法。
36                  * 那这时我们会选择用startAnimator2()的方式。(两种执行效果相同)
37                  * */
38                 startAnimator2();
39                 break;
40         }
41     }
42 
43     private void startAnimator1() {
44         //透明动画
45         ObjectAnimator animator = ObjectAnimator.ofFloat(btn_click, "alpha", 0F, 1F);
46         animator.setDuration(1000);
47         //为动画设置监听
48         animator.addListener(new Animator.AnimatorListener() {
49             @Override
50             public void onAnimationStart(Animator animation) {
51 
52             }
53 
54             @Override
55             public void onAnimationEnd(Animator animation) {
56                 /**
57                  * 大部分情况下,我们都要监听的是这个,在动画结束后,执行什么操作
58                  * 这里,我们只弹出一个Toast。
59                  * */
60                 Toast.makeText(MainActivity.this, "动画执行结束", Toast.LENGTH_SHORT).show();
61             }
62 
63             @Override
64             public void onAnimationCancel(Animator animation) {
65 
66             }
67 
68             @Override
69             public void onAnimationRepeat(Animator animation) {
70 
71             }
72         });
73         animator.start();
74     }
75 
76     private void startAnimator2() {
77         //透明动画
78         ObjectAnimator animator = ObjectAnimator.ofFloat(btn_click, "alpha", 0F, 1F);
79         animator.setDuration(1000);
80         //为动画设置监听
81         animator.addListener(new AnimatorListenerAdapter() {
82             @Override
83             public void onAnimationEnd(Animator animation) {
84                 super.onAnimationEnd(animation);
85                 Toast.makeText(MainActivity.this, "动画执行结束", Toast.LENGTH_SHORT).show();
86             }
87         });
88         animator.start();
89     }
90 }

 

posted @ 2017-05-01 15:53  火龙裸先生  阅读(8966)  评论(0编辑  收藏  举报