`
大头K
  • 浏览: 186287 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ViewFlipper 3D旋转动画实现 界面切换

阅读更多
先来看看效果:


简单介绍一下,两个界面,以水平中线旋转180度,切换界面。

上代码:
布局文件:
<RelativeLayout 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"
    tools:context=".MainActivity" 
    android:background="#a8a8a8">

    <ViewFlipper
        android:id="@+id/viewFlipper"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
         >

        <include
            android:id="@+id/one_layout1"
            layout="@layout/activity_one" />

        <include
            android:id="@+id/two_layout2"
            layout="@layout/activity_two"
            android:visibility="gone" />
    </ViewFlipper>

</RelativeLayout>


Activity关键代码:
	private void changeOneOrTwo()
	{
		float halfWidth = viewFlipper.getWidth() / 2.0f;
		float halfHeight = viewFlipper.getHeight() / 2.0f;
		int duration = 300;
		int depthz = 0;// viewFlipper.getWidth()/2;

		if (oneOrTwo == 1)
		{
			oneOrTwo = 2;
			Rotate3dAnimation in = new Rotate3dAnimation(-90, 0, halfWidth,
					halfHeight, depthz, false);
			in.setDuration(duration);
			in.setStartOffset(duration);

			viewFlipper.setInAnimation(in);
			Rotate3dAnimation out = new Rotate3dAnimation(0, 90, halfWidth,
					halfHeight, depthz, false);
			out.setDuration(duration);

			viewFlipper.setOutAnimation(out);
			viewFlipper.showNext();

		} else
		{
			oneOrTwo = 1;
			one_layout1.setVisibility(View.VISIBLE);
			two_layout2.setVisibility(View.GONE);

			Rotate3dAnimation in = new Rotate3dAnimation(90, 0, halfWidth,
					halfHeight, depthz, false);
			in.setDuration(duration);
			in.setStartOffset(duration);
			viewFlipper.setInAnimation(in);

			Rotate3dAnimation out = new Rotate3dAnimation(0, -90, halfWidth,
					halfHeight, depthz, false);
			out.setDuration(duration);

			viewFlipper.setOutAnimation(out);
			viewFlipper.showPrevious();
		}
	}


代码中还有两个动画类,项目代码已分享到github:
https://github.com/kk-java/MyViewFlipper
  • 大小: 45.8 KB
1
0
分享到:
评论

相关推荐

    Android中利用viewflipper动画切换屏幕效果

    在本项目中,开发者利用ViewFlipper来实现屏幕间的动画切换效果,使得用户体验更加生动有趣。 首先,我们需要了解ViewFlipper的基本用法。在`MainActivity`类中,`ViewFlipper`对象被初始化为`flipper`。通过调用`...

    android 3d 切换界面效果

    通过分析这些文件,可以学习到如何实际应用上述概念和技术,从而在自己的项目中实现类似的3D界面切换效果。 总的来说,创建Android 3D切换界面效果是一个涉及动画原理、视图组件和动画资源管理的综合过程。通过巧妙...

    android 3D旋转相册

    综上所述,实现“android 3D旋转相册”需要深入理解Android图形和动画机制,熟练掌握OpenGL ES,以及具备一定的布局设计和性能优化技巧。文件列表中的"TwoSidedView"可能是实现双面卡片视图的自定义View类,用于展示...

    android 沿中轴线 3D旋转

    创建3D旋转动画的关键步骤如下: 1. **定义旋转参数**:包括旋转的角度、旋转轴(X轴、Y轴或Z轴)、旋转中心点等。在`Rotate3dAnimation`中,我们需要指定沿着中轴线的旋转,这意味着我们需要设置适当的旋转轴和...

    button在底部的多个view切换<实例三触摸和点击实现3D切换>

    `Animation`允许开发者自定义动画效果,包括旋转、平移等,以实现视图间的3D转换。`ViewFlipper`则是一个内置的布局,可以自动在子视图间切换,结合适当的`Animation`,可以轻松实现3D翻转效果。 3. **...

    图片切换3D效果

    3. `&lt;Transition&gt;`:在XML动画中,`&lt;transition&gt;`元素定义了两个状态之间的动画效果,例如3D旋转、缩放等。通过调整`&lt;rotate&gt;`, `&lt;translate&gt;`, `&lt;scale&gt;`等子元素,可以实现不同的3D变换。 4. `android:duration`...

    android实现幻灯片效果

    在这个案例中,我们将使用 Rotate3dAnimation,这是一种自定义的旋转动画,可以让视图在3D空间中进行翻转。 以下是一段基本的3D翻转动画的实现: ```java public class Rotate3dAnimation extends Animation { ...

    android 3d图片反转

    - Android中的` Rotate3dAnimation `类是实现3D旋转的关键,它可以设置旋转轴、旋转角度以及是否沿轴心翻转等参数。 2. **关键技术和步骤**: - **创建动画**:首先,我们需要创建一个`Rotate3dAnimation`实例,...

    android 3dAnimation

    - 3D旋转动画常用于应用启动画面、菜单切换、图片查看器等场景,提升用户体验。 - 需要注意性能优化,避免在低端设备上过度使用复杂的3D动画,以免影响应用流畅性。 以上知识点涵盖了Android平台3D动画的基本原理...

    android3d-demo

    在3D效果中,属性动画(Property Animation)尤其重要,它允许开发者对对象的属性进行平滑的连续改变,从而实现3D旋转、缩放等效果。 3. **ViewFlipper与ViewSwitcher**: 这是Android提供的两个布局组件,可以用来...

    图片的切换效果

    在Android开发中,实现图片的3D切换效果是一种常见的用户界面增强技术,它可以为应用程序提供更生动、更具吸引力的交互体验。本知识点主要探讨如何利用Android相机类(Camera)来创建这种视觉效果。 首先,我们需要...

    列表3D切换效果.zip

    开发者可能会使用Android的动画库(Animation)或者视图转换(ViewFlipper)来创建3D翻转效果。在3D转换过程中,通常会涉及到矩阵变换(Matrix),通过调整X、Y、Z轴的坐标,模拟出物体在三维空间中的旋转和移动,...

    android3D翻转效果

    在Android开发中,3D翻转效果是一种常见的动画效果,常用于界面切换或者展示细节时增加用户的交互体验。本文将详细讲解如何在Android中实现这种3D翻转效果,包括基本概念、关键技术和实践步骤。 首先,理解3D翻转的...

    Dialog实现3D翻转效果,DialogFlipDemo

    总之,`DialogFlipDemo`是一个展示如何在Android中实现3D翻转效果的实例,它涵盖了动画设计、视图切换、3D变换矩阵以及用户交互等多个重要知识点。开发者可以借鉴这个示例,为自己的应用添加类似的特效,提升用户的...

    模拟立体翻转效果,非Gallery实现_Android.rar

    1. **定义动画**:首先,我们需要定义一个3D旋转动画。这可以通过创建一个`ObjectAnimator`对象并设置其目标对象、属性和动画持续时间来完成。例如,我们可以使用`ObjectAnimator.ofFloat()`方法,传入视图对象、...

    Grallery3D效果

    这个自定义组件通常会利用`Matrix`类来处理3D旋转,通过调整视图的变换矩阵实现3D翻页。同时,我们还需要结合`SurfaceView`或`TextureView`来处理媒体内容的渲染,确保流畅的动画性能。 倒影效果是Grallery3D中的一...

    Android3D翻转效果源码

    在Android开发中,3D翻转效果是一种常见的动画过渡手段,可以为用户界面带来生动而富有立体感的视觉体验。这种效果通常应用于Activity之间的切换,使得应用的交互更加吸引人。本文将深入探讨如何实现Android的3D翻转...

    Android 3D图片轮播.zip

    在Android中,`ViewPager`是一个非常实用的组件,用于在多个页面间进行平滑的左右滑动切换,而3D轮播则是在此基础上增加了深度和旋转效果,创建出立体的视觉体验。 实现3D轮播的关键在于动画处理。开发者可能需要...

    模拟立体翻转效果,非Gallery实现.zip

    Gallery组件在早期版本的Android SDK中被广泛用于创建3D旋转效果,但它在API 16后就被弃用了。因此,开发者需要寻找替代方案来实现类似的功能。这个压缩包可能提供了一种自定义实现的方法,通过组合使用ViewFlipper...

    android 仿书籍翻页效果(bug修复版本)

    "android 仿书籍翻页效果(bug修复版本)"是一个专为此目的设计的项目,它修复了旧版本中第一页和第二页显示空白的问题,提供了一个更稳定的用户界面翻页动画体验。以下是关于这个主题的详细知识点: 1. **Android UI...

Global site tag (gtag.js) - Google Analytics