ObjectAnimator屬性動畫應用demo,objectanimatordemo
感謝慕課網--eclipse_xu
布局檔案:activity_main.xml
1 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 tools:context="com.example.animationapp.MainActivity" > 6 7 <ImageView 8 android:id="@+id/im0" 9 android:layout_width="wrap_content"10 android:layout_height="wrap_content"11 android:paddingLeft="3dp"12 android:paddingTop="3dp"13 android:src="@drawable/b" />14 15 <ImageView16 android:id="@+id/im1"17 android:layout_width="wrap_content"18 android:layout_height="wrap_content"19 android:paddingLeft="3dp"20 android:paddingTop="3dp"21 android:src="@drawable/c" />22 23 <ImageView24 android:id="@+id/im2"25 android:layout_width="wrap_content"26 android:layout_height="wrap_content"27 android:paddingLeft="3dp"28 android:paddingTop="3dp"29 android:src="@drawable/d" />30 31 <ImageView32 android:id="@+id/im3"33 android:layout_width="wrap_content"34 android:layout_height="wrap_content"35 android:paddingLeft="3dp"36 android:paddingTop="3dp"37 android:src="@drawable/e" />38 39 <ImageView40 android:id="@+id/im4"41 android:layout_width="wrap_content"42 android:layout_height="wrap_content"43 android:paddingLeft="3dp"44 android:paddingTop="3dp"45 android:src="@drawable/f" />46 47 <ImageView48 android:id="@+id/im5"49 android:layout_width="wrap_content"50 android:layout_height="wrap_content"51 android:paddingLeft="3dp"52 android:paddingTop="3dp"53 android:src="@drawable/g" />54 55 <ImageView56 android:id="@+id/im6"57 android:layout_width="wrap_content"58 android:layout_height="wrap_content"59 android:paddingLeft="3dp"60 android:paddingTop="3dp"61 android:src="@drawable/h" />62 63 <ImageView64 android:id="@+id/im7"65 android:layout_width="wrap_content"66 android:layout_height="wrap_content"67 android:src="@drawable/a" />68 69 </FrameLayout>View Code
圖片資源
MainActivity.java
1 package com.example.animationapp; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import android.support.v7.app.ActionBarActivity; 7 import android.animation.ObjectAnimator; 8 import android.os.Bundle; 9 import android.view.Menu;10 import android.view.MenuItem;11 import android.view.View;12 import android.view.View.OnClickListener;13 import android.view.animation.BounceInterpolator;14 import android.widget.ImageView;15 import android.widget.Toast;16 17 public class MainActivity extends ActionBarActivity implements OnClickListener {18 19 private int[] res = {R.id.im0, R.id.im1,R.id.im2,20 R.id.im3,R.id.im4,R.id.im5,R.id.im6,R.id.im7}; 21 22 private List<ImageView> list = new ArrayList<ImageView>(); 23 24 private boolean flag = true;25 26 @Override27 protected void onCreate(Bundle savedInstanceState) {28 super.onCreate(savedInstanceState);29 setContentView(R.layout.activity_main);30 31 initView();32 }33 34 private void initView() {35 36 for(int i = 0; i < res.length; i++){37 ImageView im = (ImageView) findViewById(res[i]);38 im.setOnClickListener(this);39 list.add(im);40 }41 }42 43 @Override44 public void onClick(View v) {45 switch(v.getId()){46 //im7最後布局,疊加在最上面47 case R.id.im7:{48 49 if(flag){50 startAnimation();51 flag = false;52 }else{53 closeAnimation();54 flag = true;55 }56 break;57 }58 59 default:60 Toast.makeText(MainActivity.this, v.getId()+"OK", Toast.LENGTH_SHORT).show();61 break;62 }63 }64 65 private void closeAnimation() {66 for(int i = 0 ;i<res.length-1; i++){67 ObjectAnimator oa = ObjectAnimator.ofFloat(list.get(i),68 "translationY",i*200F, 0F );69 oa.setDuration(100); 70 //oa.setStartDelay(50*i);71 oa.start();72 }73 }74 75 private void startAnimation() {76 //此處只需要彈出其餘7個表徵圖,最上邊的表徵圖im7不動77 for(int i = 0 ;i<res.length-1; i++){78 //屬性動畫操作類79 ObjectAnimator oa = ObjectAnimator.ofFloat(list.get(i),80 "translationY", 0F, i*200F);81 oa.setDuration(200);82 //oa.setInterpolator(new BounceInterpolator());83 //oa.setStartDelay(200*i);84 oa.start();85 }86 }87 88 }View Code