`

2D翻转

 
阅读更多

视频http://www.jikexueyuan.com/course/341.html

activity_main.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/root"
    tools:context="com.example.card2d.MainActivity" >

    <ImageView
        android:id="@+id/ivA"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/background_1"/>
    
    <ImageView
        android:id="@+id/ivB"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/background_2"/>
    
</FrameLayout>

MainActivity.java

public class MainActivity extends Activity {
	
	//声明变量
	private ImageView imageA;
	private ImageView imageB;
	
	private ScaleAnimation sato0=new ScaleAnimation(1,0,1,1, 
			Animation.RELATIVE_TO_PARENT,0.5f,Animation.RELATIVE_TO_PARENT,0.5f);
    private ScaleAnimation sato1=new ScaleAnimation(0,1,1,1, 
    		Animation.RELATIVE_TO_PARENT,0.5f,Animation.RELATIVE_TO_PARENT,0.5f);


	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		//调用初始化方法
		initView();
				
		//注册监听器,匿名内部类
		findViewById(R.id.root).setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				//当点击图片的时候我们应该让A来进行执行
				//启动动画,让它来加载图片A
				//判断imageA是否是显示的
				if(imageA.getVisibility()==View.VISIBLE){
					//让imageA加载第一个动画
					imageA.startAnimation(sato0);
				}
				else{
					//让imageB加载第二个动画
					imageB.startAnimation(sato0);
				}
			}
		});
	}
	
	//让图片A显示,图片B隐藏
	private void showImageA(){
		imageA.setVisibility(View.VISIBLE);
		imageB.setVisibility(View.INVISIBLE);
	}
	//让图片A隐藏,图片B显示
	private void showImageB(){
		imageA.setVisibility(View.INVISIBLE);
		imageB.setVisibility(View.VISIBLE);
	}
	//写一个初始化方法,让A显示
	private void initView(){
		//获得对象引用
		imageA=(ImageView)findViewById(R.id.ivA);
		imageB=(ImageView)findViewById(R.id.ivB);
		//让图片A显示
		showImageA();
		//给动画添加执行时间0.5秒
		sato0.setDuration(500);
		sato1.setDuration(500);
		//给第一个动画添加一个监听事件,当第一个动画执行完毕后执行第二个动画
		sato0.setAnimationListener(new Animation.AnimationListener() {
			
			//动画开始执行触发
			@Override
			public void onAnimationStart(Animation animation) {
				// TODO Auto-generated method stub
				
			}
			
			//动画重复执行触发
			@Override
			public void onAnimationRepeat(Animation animation) {
				// TODO Auto-generated method stub
				
			}
			
			//动画停止执行触发
			@Override
			public void onAnimationEnd(Animation animation) {
				// TODO Auto-generated method stub
				//监听第一个动画什么时候停止,停止了让它执行第二个
				//判断第一个动画是否是显示的
				if(imageA.getVisibility()==View.VISIBLE){
			        //因为这是结束的动画监听,如果第一个动画是显示的,
					//那么我们需要将它隐藏,然后执行第二个动画
					//将第一张动画清空
					imageA.setAnimation(null);
					//调用第二张动画
					showImageB();
					//同时给showB添加上动画效果
					imageB.startAnimation(sato1);
				}
				else{//如果是第二张动画正在执行
					//将第二张动画清空
					imageB.setAnimation(null);
					//调用第一张动画
					showImageA();
					//同时给showA添加上动画效果
					imageA.startAnimation(sato1);
				}
			}
		});
	}	
}

 

分享到:
评论

相关推荐

    2D翻转(Android)

    在Android开发中,2D翻转是一种常见的动画效果,它能为用户界面带来生动和交互性的体验。2D翻转通常用于控件如按钮、图片或者整个布局的过渡效果,使得应用看起来更加现代化和吸引人。这个教程我们将深入探讨如何在...

    Android滑屏2D翻转

    在Android开发中,滑屏2D翻转是一种常见的交互效果,通常用于切换界面或展示细节。这个"Android滑屏2D翻转"的demo提供了一个简单易懂的实例,非常适合初学者来理解和实践这一技术。下面我们将深入探讨实现这一效果所...

    2D翻转分页

    实现页面批量图片元素翻页效果,有问题联系我 var page1=["img/blue1.png","img/red1.png","img/white1.png"];//第1页 var page2=["img/blue2.png","img/red2.png","img/white2.png"];//第2页 var page3=["img/blue3...

    wpf窗体翻转,类QQ

    我们可以通过改变`RotateTransform`的角度属性来实现2D翻转,而通过调整`ScaleTransform`的X和Y轴比例,可以实现类似3D翻转的效果。 1. **2D翻转**: - 创建一个新的`RotateTransform`实例,设置其`CenterX`和`...

    页面3D翻转特效

    因此,在开发时需要考虑使用JavaScript库如jQuery或polyfills来提供兼容性解决方案,或者提供降级的2D翻转效果。 7. **性能优化**: 由于3D转换可能对GPU造成较大负担,特别是在大型复杂的3D场景中。为优化性能,...

    cocoscreator 翻牌效果

    这个过程涉及到2D图形渲染、动画帧序列以及用户交互处理等多个方面的技术知识。下面我们将详细探讨如何在CocosCreator中创建翻牌效果。 首先,我们需要了解CocosCreator的基础架构。CocosCreator是一款基于Cocos2d-...

    modernizr.js html5 jquery 3D翻转图片

    4. **兼容性处理**:对于不支持3D转换的浏览器,可以使用JavaScript模拟翻转效果,或者提供一种备选的2D翻转效果。 5. **优化性能**:确保在移动设备上,3D翻转效果不会过于消耗性能。可以考虑限制翻转频率,或者...

    Android代码-Android 横向翻转效果,支持双面的 View 场景

    4. **平滑动画**:库提供了平滑的2D翻转动画,使得页面翻转过程看起来自然且逼真。 5. **可配置性**:开发者可以根据需求调整翻转的速度、角度、方向等参数,以适应不同应用场景。 6. **兼容性**:`EasyFlipView`...

    Cocos2D游戏之旅(四):卡牌翻转效果的实现(下)---源代码

    在本篇【Cocos2D游戏之旅(四):卡牌翻转效果的实现(下)】中,我们将深入探讨如何在Cocos2D游戏引擎中实现引人入胜的卡牌翻转特效。Cocos2D是一款强大的2D游戏开发框架,广泛应用于iOS、Android以及Windows等平台...

    css3 3D悬停图片翻转洗牌动画特效.zip

    可以通过检测浏览器特性,为不支持的浏览器提供备选方案,如简单的2D翻转或静态图片预览。 此外,由于3D转换可能影响性能,特别是当处理大量元素时,我们可以通过减少不必要的3D转换、优化布局和使用硬件加速来提高...

    android实现2D图片翻转

    在Android平台上,实现2D图片翻转是一种常见的动画效果,可以增强用户界面的交互性和视觉吸引力。本教程将深入探讨如何使用Android的普通动画(Property Animation)系统来创建这种效果,特别是关注`ScaleAnimation`...

    Cocos2D游戏之旅(三):卡牌翻转效果2(只有当鼠标点中卡牌才翻转)

    在本篇中,我们将深入探讨如何使用Cocos2D游戏引擎实现一个更加精确的卡牌翻转效果,即“只有当鼠标点中卡牌时才翻转”。这相对于上一个资源中的“屏幕有点击就翻转”是一个重要的优化,提高了用户体验,让用户能够...

    html5 canvas左右翻转2d动画

    html5 canvas左右翻转2d动画

    手机端书本翻页效果

    1. **2D CSS3翻页**:这是最常见的一种方法,通过CSS3的transform属性实现2D翻转,如`transform: rotateY(90deg)`。这种方式实现简单,但在某些设备上可能性能不佳,尤其是旧款手机。 2. **3D CSS3翻页**:3D翻页...

    Cocos2D游戏之旅(三):卡牌翻转效果的实现

    本教程将深入探讨如何在Cocos2D框架中实现卡牌翻转效果,以增强玩家的游戏体验。 首先,我们要了解Cocos2D的基本概念。Cocos2D是一个开源的2D游戏开发框架,它提供了丰富的图形绘制、动画控制、物理引擎等功能,...

    使用QWidget实现翻转

    `QTransform`是Qt提供的一个矩阵转换类,可以用来执行2D和3D图形变换,如缩放、旋转和翻转。在翻转过程中,`QTransform`可以用于构建一个包含翻转操作的转换矩阵,然后应用到`QPainter`上。 以下是实现翻转的基本...

    JKFlapView:自定义襟翼视图可制作带有很棒的自定义选项的2D和3D襟翼(从Fabric.io启发而来的襟翼视图)

    2D效果您可以通过初始化2D JKFlippingView来将2D翻转视图添加到您的应用程序,如下所示。JKFlippingView* flippingView2D = [[JKFlippingView alloc ] init2DFlapWithPosition: JKFlapOpening2DPositionTopLeft and2...

    3D图片切换 图片翻转 设置翻转时间

    本主题聚焦于"3D图片切换与图片翻转",特别是通过自封装的Java Archive (JAR) 包实现这一功能,并且能够设置翻转时间,以实现更流畅和动态的视觉效果。 首先,我们要理解3D图片翻转的概念。3D翻转是指在三维空间中...

    Qt/QML 翻转效果实例

    Transform组件允许我们在2D或3D空间中对元素进行旋转、缩放、平移等变换。在本例中,我们主要关注Rotation组件,它负责实现旋转效果。Rotation组件有一个名为`angle`的属性,可以设置为所需的翻转角度。当用户滚动...

Global site tag (gtag.js) - Google Analytics