總體很簡單,直接上代碼吧。activity_main.xml:java
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:android
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 }