`
longgangbai
  • 浏览: 7330859 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android ViewFlipper实现页面的滑动切换

 
阅读更多

     在屏幕中滑动左右界面实现,页面的切换。

动画效果设置文件如下:

 

push_left_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
	<translate android:fromXDelta="100%p" android:toXDelta="0"
		android:duration="500" />
	<alpha android:fromAlpha="0.1" android:toAlpha="1.0"
		android:duration="500" />
</set>

 

push_left_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
	<translate android:fromXDelta="0" android:toXDelta="-100%p"
		android:duration="500" />
	<alpha android:fromAlpha="1.0" android:toAlpha="0.1"
		android:duration="500" />
</set>

 

push_right_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
	<translate android:fromXDelta="-100%p" android:toXDelta="0"
		android:duration="500" />
	<alpha android:fromAlpha="0.1" android:toAlpha="1.0"
		android:duration="500" />
</set>

 

 

push_right_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
	<translate android:fromXDelta="0" android:toXDelta="100%p"
		android:duration="500" />
	<alpha android:fromAlpha="1.0" android:toAlpha="0.1"
		android:duration="500" />
</set>

 

 

实现代码如下:

package com.android.flip;

import android.app.Activity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.view.GestureDetector.OnGestureListener;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.ViewFlipper;

/**
 * 为了使其滑动时有一定的特效,我们需要加入Animation效果,说到Animation,我们先看下如何
 * 在Android中实现自定义Animation。自定义的Animation是以XML格式定义的,定义好的XML文件
 * 存放在res/anim中。

 

  一般的Animation有以下四种类型:

  1. Alpha:渐变透明度动画效果

  2. Scale:渐变尺寸伸缩动画效果

  3. Translate:画面转换位置移动动画效果

  4. Rotate:画面转换位置移动动画效果

 * Android实现左右滑动效果
 * 通过ViewFilpper实现相关的左右滑动功能,ViewFilpper必须在GestureDetector的配合下实现
 * 
 * 
 * 
 * @author longgangbai
 *
 */
public class MainActivity extends Activity implements OnGestureListener {
	private ViewFlipper flipper;
	private GestureDetector detector;
	
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        detector = new GestureDetector(this);
		flipper = (ViewFlipper) this.findViewById(R.id.ViewFlipper1);

		flipper.addView(addTextView(R.drawable.photo1));
		flipper.addView(addTextView(R.drawable.photo2));
		flipper.addView(addTextView(R.drawable.photo3));
		flipper.addView(addTextView(R.drawable.photo4));
		flipper.addView(addTextView(R.drawable.photo5));
    }
    
    private View addTextView(int id) {
		ImageView iv = new ImageView(this);
		iv.setImageResource(id);
		return iv;
	}
    
    @Override
    public boolean onTouchEvent(MotionEvent event) {
    	// TODO Auto-generated method stub
    	return this.detector.onTouchEvent(event);
    }
    
    @Override
	public boolean onDown(MotionEvent e) {
		// TODO Auto-generated method stub
		return false;
	}
    
    @Override
	public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
			float velocityY) {
		if (e1.getX() - e2.getX() > 120) {
			this.flipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in));
			this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_out));
			this.flipper.showNext();
			return true;
		} else if (e1.getX() - e2.getX() < -120) {
			this.flipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_right_in));
			this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.push_right_out));
			this.flipper.showPrevious();
			return true;
		}
		
		return false;
	}
    
    @Override
    public void onLongPress(MotionEvent e) {
    	// TODO Auto-generated method stub
    	
    }
    
    @Override
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
    		float distanceY) {
    	// TODO Auto-generated method stub
    	return false;
    }
    
    @Override
    public void onShowPress(MotionEvent e) {
    	// TODO Auto-generated method stub
    	
    }
    
    @Override
    public boolean onSingleTapUp(MotionEvent e) {
    	// TODO Auto-generated method stub
    	return false;
    }
}

 

分享到:
评论

相关推荐

    Android使用ViewFlipper做页面切换,与手势滑动切换的使用

    Android系统自带有一个多页面管理的控件:ViewFlipper. 它可以简单实现子页面的切换,,, 它只需使用addView方法添加几个View,每个View对应的是一个页面,即可完成对于多页面的管理,,, 在android上实现手势...

    android 利用ViewFlipper来实现滑动切换

    在Android开发中,ViewFlipper是一个非常有用的布局组件,它允许开发者轻松地实现在多个视图之间进行滑动切换的效果。这种效果常见于各种应用程序,如轮播图、页面导航等。下面我们将深入探讨如何利用ViewFlipper...

    android viewflipper 图片滑动demo

    本示例“android viewflipper 图片滑动demo”正是这样一个应用场景,用于展示如何用ViewFlipper实现在应用首次启动时的图片引导页面。 首先,我们需要了解ViewFlipper的基本概念。ViewFlipper是ViewGroup的一个子类...

    Android ActivtiyGroup和ViewFlipper实现Activity滑屏切换

    它可以方便地实现动画效果,如左右滑动来切换视图,这在实现简单的滑屏切换效果时非常有用。不过,`ViewFlipper`通常用于展示同类型的视图,而不是不同`Activity`之间的切换。因此,如果你想要在不同的`Activity`...

    ViewFlipper和ViewPage实现滑动切换界面

    在Android开发中,创建动态和交互丰富的用户界面是至关重要的,`ViewFlipper`和`ViewPager`组件就提供了这样的功能,让开发者能够实现界面之间的滑动切换效果。这两个组件各有特点,适合不同的应用场景。 首先,`...

    android中使用ViewFlipper实现滑动翻页示例

    在Android开发中,ViewFlipper是一个非常有用的布局控件,它允许我们轻松地实现滑动翻页的效果。这个示例将向我们展示如何在应用程序中使用ViewFlipper来创建一个动态翻页界面,使得用户可以通过手势或编程方式切换...

    Android ViewFlipper水平滑动Demo.zip

    这样就实现了ViewFlipper的自动水平滑动切换效果。 **5. 注意事项** - 动画的持续时间应与视图切换的时间一致,以确保平滑过渡。 - 为了防止内存泄漏,记得在Activity的onPause或onStop方法中移除定时器。 总结,...

    Android 滑动效果ViewFlipper

    在Android开发中,我们常常需要实现各种动画效果来提升用户体验,其中滑动切换视图是一种常见的交互方式。`ViewFlipper`是Android SDK提供的一种布局容器,它允许我们在多个子视图之间进行平滑的滑动过渡,非常适合...

    TabHost + ViewFlipper实现滑动翻页

    `TabHost` 用于创建底部的标签栏,而 `ViewFlipper` 可以实现页面之间的滑动切换。接下来,我们将深入探讨这两个组件以及如何将它们结合使用来实现滑动翻页效果。 `TabHost` 是Android SDK提供的一种容器,它可以...

    ViewFlipper+AsyncImageLoader实现页面滑动及页面图片异步加载

    在Android开发中,ViewFlipper是一个非常有用的布局控件,它允许我们轻松地在多个视图之间进行切换,常用于实现类似轮播图或者页面滑动的效果。在"ViewFlipper+AsyncImageLoader实现页面滑动及页面图片异步加载"这个...

    android viewflipper手势拖动效果(An-Beer工作室)

    在 Android 应用开发中,ViewFlipper 是一个非常有用的布局组件,它可以实现多个视图(View)之间的切换,并且支持手势滑动切换效果,使得用户界面更加生动和交互性更强。ViewFlipper 是从 FrameLayout 派生的,因此...

    Android实现页面滑动切换动画

    总结来说,Android中实现页面滑动切换动画的关键在于使用ViewFlipper组件和自定义手势检测。通过监听用户的滑动事件,结合动画资源,可以实现平滑、自然的页面切换效果,从而提升应用的交互性和用户体验。同时,...

    ViewPager和ViewFlipper实现图片左右滑动

    在Android开发中,为了提供优秀的用户体验,经常需要实现图片的左右滑动切换功能,这通常是通过ViewPager或ViewFlipper组件来完成的。这两个组件都属于Android SDK中的布局管理器,可以方便地展示多个视图并支持用户...

    安卓Android源码——ViewFlipper水平滑动.rar

    ViewFlipper是Android SDK提供的一种视图容器,用于在多个视图之间进行平滑切换,通常用于创建动画效果,如轮播图或页面切换。在本压缩包中,我们可能会找到相关的源代码示例,以展示如何在应用程序中有效地使用...

    Android ViewFlipper简单用法解析

    总之,Android ViewFlipper是实现简单视图切换和动画效果的好工具,尤其适用于那些不需要复杂导航或页面间数据绑定的应用场景。如果你需要一个轻量级的视图切换组件,并希望自定义动画,ViewFlipper将是一个不错的...

    ViewFlipper简单实现横屏滑动

    在Android开发中,ViewFlipper是一个非常实用的控件,用于在多个视图之间进行平滑切换,常用于实现类似轮播图或者横向滑动页面的效果。本教程将详细介绍如何利用ViewFlipper来实现横屏滑动,以及屏幕局部滑动的实现...

    android 滑动切换页面

    本文将深入探讨如何在Android中实现滑动切换页面,并以`ViewFlipper`组件为例进行详细讲解。 首先,`ViewFlipper`是Android SDK提供的一种布局容器,它可以自动或手动切换其包含的子视图。通过滑动手势,用户可以...

    Android源码-使用ViewFlipper+GestureDetector实现划动翻页

    `ViewFlipper`是Android SDK提供的一种布局容器,它允许你在多个视图之间进行动态切换。你可以将一系列的视图(如ImageView、TextView等)添加到`ViewFlipper`中,然后通过动画效果来展示视图的切换,实现类似翻页的...

    Android应用源码之ViewFlipper水平滑动.zip

    在Android开发中,ViewFlipper是一个非常实用的控件,它允许开发者轻松地实现视图间的切换,通常用于实现类似轮播图或者卡片翻页的效果。这个压缩包"Android应用源码之ViewFlipper水平滑动.zip"包含了使用...

Global site tag (gtag.js) - Google Analytics