android使用FlipAnimation实现3D垂直翻转动画

android使用FlipAnimation实现3D垂直翻转动画,第1张

概述本文实例为大家分享了android实现3D垂直翻转动画的具体代码,供大家参考,具体内容如下

本文实例为大家分享了androID实现3D垂直翻转动画的具体代码,供大家参考,具体内容如下

需求

对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(); }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

以上是内存溢出为你收集整理的android使用FlipAnimation实现3D垂直翻转动画全部内容,希望文章能够帮你解决android使用FlipAnimation实现3D垂直翻转动画所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1143187.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存