国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

android使用FlipAnimation實現(xiàn)3D垂直翻轉動畫

2019-12-12 01:21:55
字體:
來源:轉載
供稿:網(wǎng)友

本文實例為大家分享了android實現(xiàn)3D垂直翻轉動畫的具體代碼,供大家參考,具體內(nèi)容如下

需求

對ImageView進行類似于翻紙牌的動畫

解決

各種Animator的組合

第一步動畫:

動畫代碼文件1,card_flip_left_out.xml

 <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 先縮小 --> <objectAnimator  android:duration="200"  android:propertyName="scaleX"  android:valueFrom="1.0"  android:valueTo="0.8" /> <objectAnimator  android:duration="200"  android:propertyName="scaleY"  android:valueFrom="1.0"  android:valueTo="0.8" /> <!-- 再旋轉 --> <objectAnimator  android:duration="@integer/card_flip_time_full"  android:interpolator="@android:interpolator/accelerate_decelerate"  android:propertyName="rotationY"  android:startOffset="200"  android:valueFrom="0"  android:valueTo="90" /> <!-- 同時透明度變化 --> <objectAnimator  android:duration="@integer/card_flip_time_full"  android:propertyName="alpha"  android:startOffset="200"  android:valueFrom="1.0"  android:valueTo="0.0" /> </set>

第二步動畫

動畫文件2:card_flip_left_out

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 立即設置為透明 --> <objectAnimator  android:duration="0"  android:propertyName="alpha"  android:valueFrom="1.0"  android:valueTo="0.0" /> <!-- 旋轉 --> <objectAnimator  android:duration="@integer/card_flip_time_full"  android:interpolator="@android:interpolator/accelerate_decelerate"  android:propertyName="rotationY"  android:valueFrom="-90"  android:valueTo="0" /> <!-- 旋轉一半的時間,逐漸顯示 --> <objectAnimator  android:duration="1"  android:propertyName="alpha"  android:startOffset="@integer/card_flip_time_half"  android:valueFrom="0.0"  android:valueTo="1.0" /> <!-- 最后放大 --> <objectAnimator  android:duration="200"  android:propertyName="scaleX"  android:startOffset="@integer/card_flip_time_full"  android:valueFrom="0.8"  android:valueTo="1.0" /> <objectAnimator  android:duration="200"  android:propertyName="scaleY"  android:startOffset="@integer/card_flip_time_full"  android:valueFrom="0.8"  android:valueTo="1.0" /></set>

下面就是寫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(); }}

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 宿迁市| 阿坝县| 恩平市| 昌邑市| 古丈县| 衡阳市| 汪清县| 盐源县| 绥芬河市| 临城县| 屏东县| 焉耆| 二连浩特市| 五寨县| 淳安县| 松江区| 文化| 黑水县| 安龙县| 张家口市| 新乐市| 白水县| 洛宁县| 平阳县| 桂林市| 宁国市| 洛南县| 通河县| 延津县| 铅山县| 宣化县| 上犹县| 永新县| 栾城县| 陇川县| 南康市| 如皋市| 博白县| 旺苍县| 衡水市| 玛多县|