Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android:3D垂直翻轉動畫-FlipAnimation

android:3D垂直翻轉動畫-FlipAnimation

編輯:關於Android編程

需求
對ImageView進行類似於翻紙牌的動畫 解決
各種Animator的組合

第一步動畫:
動畫代碼文件1,card_flip_left_out.xml

  
 
    
    

第二步動畫
動畫文件2:card_flip_left_out



    
    

下面就是寫java代碼啦,在第一個動畫結束的時候,換圖。

package com.example.android.animationsdemo;
import android.animation.Animator;
import android.animation.AnimatorInflater;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;

/**
 * @date 2015年3月18日 下午2:28:33
 * @author Zheng Haibo
 * @Description: 圖片的翻轉動畫
 */
public class ImageFlipActivity extends Activity {

    private ImageView imageView;
    private int clickCount = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_image_flip);
        imageView = (ImageView) findViewById(R.id.iv_show);

        imageView.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                playFlipAnimation2();
            }

        });
    }

    private void playFlipAnimation2() {
        clickCount++;
        AnimatorSet animatorSetOut = (AnimatorSet) AnimatorInflater
                .loadAnimator(this, R.animator.card_flip_left_out);

        final AnimatorSet animatorSetIn = (AnimatorSet) AnimatorInflater
                .loadAnimator(this, R.animator.card_flip_left_in);

        animatorSetOut.setTarget(imageView);
        animatorSetIn.setTarget(imageView);

        animatorSetOut.addListener(new AnimatorListenerAdapter() {

            @Override
            public void onAnimationEnd(Animator animation) {// 翻轉90度之後,換圖
                if (clickCount % 2 == 0) {
                    imageView.setImageResource(R.drawable.image1);
                } else {
                    imageView.setImageResource(R.drawable.image2);
                }
                animatorSetIn.start();
            }
        });

        animatorSetIn.addListener(new AnimatorListenerAdapter() {

            @Override
            public void onAnimationEnd(Animator animation) {
                // TODO
            }
        });
        animatorSetOut.start();
    }

}
 
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved