Android中Activity多页滑动切换效果(使用ViewFlipper)

android 利用ViewFlipper来实现滑动切换Activity 利用viwflipper来将多个activity封装在一个view中,通过实现OnGestureListener接口的onTouchEvent()方法和onFling() 方法,即可通过手持滑动切换activity。 立即下载

效果:



布局:


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout0"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

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

        <!-- 第一页 -->
        <LinearLayout
            android:id="@+id/LinearLayout1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:background="#A020F0"
            android:orientation="vertical" >

            <TextView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="This is first page" />
        </LinearLayout>

        <!-- 第二页 -->
        <LinearLayout
            android:id="@+id/LinearLayout2"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:background="#4876FF"
            android:orientation="vertical" >

            <TextView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="This is second page" />
        </LinearLayout>
    </ViewFlipper>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

</LinearLayout>


定义动画效果:

package com.cn.zzti.ly.util;

import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;

/*
 * 定义动画效果
 */
public class AnimationUtil {
	public static Animation inLeftToRight() {
		
		//定义平移动画
		TranslateAnimation translateAnimation = new TranslateAnimation(
				Animation.RELATIVE_TO_PARENT, -1.0f,
				Animation.RELATIVE_TO_PARENT, 0.0f,
				Animation.RELATIVE_TO_PARENT, 0.0f,
				Animation.RELATIVE_TO_PARENT, 0.0f);	
		translateAnimation.setDuration(300);		//设置持续时间
		return translateAnimation;
	}

	public static Animation outLeftToRight() {
		TranslateAnimation translateAnimation = new TranslateAnimation(
				Animation.RELATIVE_TO_PARENT, 0.0f,
				Animation.RELATIVE_TO_PARENT, 1.0f,
				Animation.RELATIVE_TO_PARENT, 0.0f,
				Animation.RELATIVE_TO_PARENT, 0.0f);
		translateAnimation.setDuration(300);
		return translateAnimation;
	}

	public static Animation inRightToLeft() {
		TranslateAnimation translateAnimation = new TranslateAnimation(
				Animation.RELATIVE_TO_PARENT, 1.0f,
				Animation.RELATIVE_TO_PARENT, 0.0f,
				Animation.RELATIVE_TO_PARENT, 0.0f,
				Animation.RELATIVE_TO_PARENT, 0.0f);
		translateAnimation.setDuration(300);
		return translateAnimation;
	}

	public static Animation outRightToLeft() {
		TranslateAnimation translateAnimation = new TranslateAnimation(
				Animation.RELATIVE_TO_PARENT, 0.0f,
				Animation.RELATIVE_TO_PARENT, -1.0f,
				Animation.RELATIVE_TO_PARENT, 0.0f,
				Animation.RELATIVE_TO_PARENT, 0.0f);
		translateAnimation.setDuration(300);
		return translateAnimation;
	}
}

Activity:

package com.cn.zzti.ly.ui;

import com.cn.zzti.ly.util.AnimationUtil;

import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.widget.ViewFlipper;

public class MainActivity extends Activity {

	private ViewFlipper viewFlipper;
	private float startX;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		viewFlipper = (ViewFlipper) this.findViewById(R.id.viewFlipper);
	}

	@Override
	public boolean onTouchEvent(MotionEvent event) {
		
		if (event.getAction() == MotionEvent.ACTION_DOWN)
		{
			startX = event.getX();
		}
	
			else if (event.getAction() == MotionEvent.ACTION_UP)
			{
				float endX = event.getX();
				if (endX > startX + 50)
				{
					//设置进入和出去的平移动画效果
					viewFlipper.setInAnimation(AnimationUtil.inLeftToRight());
					viewFlipper.setOutAnimation(AnimationUtil.outLeftToRight());
					viewFlipper.showNext();										//显示下一页
				}
				else if (endX < startX - 50)
				{
					viewFlipper.setInAnimation(AnimationUtil.inRightToLeft());
					viewFlipper.setOutAnimation(AnimationUtil.outRightToLeft());
					viewFlipper.showPrevious();									//显示前一页
				}
				return true;
			}
		return super.onTouchEvent(event);
	}
	

}


android点击按钮实现多个Activity滑动切换 android点击按钮实现多个Activity滑动切换 切换方式从右边进入,左边退出 立即下载

相关推荐

android 自定义view大全,非常好用

里面是一个自定义view,展示了常见的自定义view套路,实用

Android中三种超实用的滑屏方式汇总(ViewPager、ViewFlipper、ViewFlow)

ViewPager、ViewFlipper、ViewFlow

qq_26514147的博客 688

Android ActivtiyGroup和ViewFlipper实现Activity滑屏切换

Android ActivtiyGroup和ViewFlipper实现Activity滑屏切换,绝对好用!

android横向滑动换页,[转载]Android 左右滑动切换页面或Activity的效果实现

3、重载onFling函数Java代码 publicbooleanonFling(MotionEvente1,MotionEvente2,floatvelocityX,floatvelocityY){if(e1.getX()-e2.getX()>snsConstant.getFlingMinDistance()&&Math.abs(velocityX)&gt...

weixin_35118333的博客 617

Android项目源码实现一个都不能死android源码

本项目是一款android考试系统,应该说这个应用太强大了,能触屏起跳,过关。用到技术很多,有surfaceview布局及多线程开启,时时刷新界面handler,项目中代码层次分明,大部分方法都加了详细的注释。(项目采用GBK编码)

《从0到1:CTFer成长之路》书籍配套题目-[第二章 web进阶]文件上传

[第二章 web进阶]文件上传开始行动绕过第1个限制绕过第2个限制 介绍:记录一下笔记,方便以后迅速回忆使用。 《从0到1:CTFer成长之路》书籍配套题目,来源网站:《从0到1:CTFer成长之路》 先看一下题目源码: <?php header("Content-Type:text/html; charset=utf-8"); // 每5分钟会清除一次目录下上传的文件 require_once('pclzip.lib.php'); if(!$_FILES){ echo '

weixin_46703850的博客 3411

android viewflipper中使用fragment,如何正确的在Fragment中使用ViewFlipper?

publicclassOneFgmextendsFragment{privateint[]image_resource={R.drawable.abookapart1,R.drawable.bg2015071003,R.drawable.bg2015071004,R.drawable.bg2015071010};publicOneFgm(){}publicImageView...

weixin_39966602的博客 259

硬全桥副边钳位管Vds电压凸台揭秘——寄生参数引发的导通异常

本文深入分析了硬全桥副边钳位管Vds电压凸台现象,揭示了寄生参数如何引发导通异常。通过波形分析和工程实践,详细解析了走线电感的蓄能效应和体二极管的接力作用,并提供了PCB布局优化、元件选型和驱动电路调整等解决方案,帮助工程师有效应对这一常见问题。

weixin_30825581的博客 430

我的Android进阶之旅------>Android 实现滑动翻页---使用ViewFlipper

屏幕切换指的是在同一个Activity内屏幕见的切换,最长见的情况就是在一个FrameLayout内有多个页面,比如一个系统设置页面;一个个性化设置页面。 通过查看OPhone API文档可以发现,有个android.widget.ViewAnimator类继承至FrameLayout,ViewAnimator类的作用是为FrameLayout里面的View切换提供动画效果。该类有如下几...

移动编程 217

ViT 实战 万字全攻略:从图像分类到医学影像,Transformer 重塑视觉 AI

摘要:本文深度解析 ViT(Vision Transformer)算法在视觉任务中的原理与实践,涵盖图像分类、目标检测、语义分割及医学影像分析四大领域。从理论出发,详细拆解图像分块、位置编码、Transformer 编码器等核心机制;通过 PyTorch 与 Timm 库实现模型构建、训练与优化,提供 CIFAR-10、Pascal VOC、Cityscapes 及医学数据集的完整代码示例。针对工业级部署,重点介绍模型量化、TensorRT 加速、Flask API 开发及 Docker 容器化方案。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1938

11.1华为OD机试真题 新系统 - 整理学生编号 (Java/Py/C/C++/Js/Go)

11.1华为OD机试真题 新系统 - 整理学生编号 (Java/Py/C/C++/Js/Go)

算法大师! 436

android viewflipper中使用fragment,如何在Fragment中实现ViewFlipper?

我的代码如下:publicImageViewgetImageView(intres_id){ImageViewimageView=newImageView(getContext());imageView.setBackgroundResource(res_id);returnimageView;}@OverridepublicvoidonCreate(@NullableBun...

weixin_33606346的博客 305

图神经网络实战——利用节点回归预测网络流量

在机器学习中,回归指的是对连续值的预测。通常与分类形成鲜明对比,分类的目标是找到正确的类别(即离散值,而非连续值)。在图数据中,分类和回归分别对应于节点分类和节点回归。在本节中,我们将尝试预测每个节点的连续值,而非分类变量。

盼小辉丶的博客 1万+

Android 实现多页界面左右滑动切换效果之入门+进阶 (ViewPager+PagerAdapter)

原文地址:实现多页界面左右滑动切换效果之入门" style="text-decoration:none; color:rgb(29,65,105)">Android 实现多页界面左右滑动切换效果之入门作者:石头 一、实现多面界面滑动切换方法有多种,就目前我所知道的大致有三种: 1.ViewFlipper + Animation: 2.ViewGroup + Scroller 

HZC的专栏 4749

Python爬虫实战:使用最新技术爬取GitHub Trending项目

本文将详细介绍如何使用Python最新技术栈构建一个高效的GitHub Trending爬虫。我们将使用异步请求库httpx、HTML解析库parsel、数据存储方案以及反反爬技术,完整实现一个能够稳定获取GitHub Trending数据的爬虫系统。文章包含5000余字详细教程,从环境搭建到代码实现,再到数据处理和存储,最后部署运行,提供全方位指导。GitHub Trending页面展示了GitHub上当前最受欢迎的项目,对于开发者了解技术趋势、发现优秀项目非常有价值。

2201_76125261的博客 738

电子凸轮追剪算法深度解析:2500字图解+代码实战

工艺需求:在物料连续运动过程中完成精准切割核心矛盾:切割瞬间刀具与物料必须绝对同步传统方案:机械凸轮(结构复杂,调整困难)现代方案:电子凸轮(柔性可调,精度更高)

QQ_778132974的博客 1112

Android 实现滑动翻页---使用ViewFlipper

屏幕切换指的是在同一个Activity内屏幕见的切换,最长见的情况就是在一个FrameLayout内有多个页面,比如一个系统设置页面;一个个性化设置页面。 通过查看OPhone API文档可以发现,有个android.widget.ViewAnimator类继承至FrameLayout,ViewAnimator类的作用是为FrameLayout里面的View切换提供动画效果。该类有如下几

selfimpl 1044

基于物联网设计温室水培系统(NBIOT+华为云IOT)_338

本项目设计并实现了一套基于物联网的温室水培系统。系统以STM32F103RCT6单片机为核心控制器,结合SHT30温湿度传感器、SGP30二氧化碳传感器、BH1750光照传感器及液位检测传感器等硬件,实现对温室内环境参数的实时采集。系统支持自动和手动两种控制模式,能够根据传感器数据自动控制补光灯、通风风扇、遮光卷帘、降温水帘及营养液补充电机。通过NBIoT模块,系统可将采集的数据通过MQTT协议上传至华为云IOT平台,用户可通过Android手机APP或Windows上位机进行远程监控与控制。

414

Android中使用ViewFlipper实现屏幕切换

屏幕切换指的是在同一个Activity内屏幕间的切换,ViewFlipper继承了Framelayout类,ViewAnimator类的作用是为FrameLayout里面的View切换提供动画效果。如下动图: 该类有如下几个和动画相关的函数: setInAnimation:设置View进入屏幕时候使用的动画,该函数有两个版本,一个接受单个参数,类型为android.view.anima

潘侯爷的博客 1008

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【Android基础知识】使用ViewFlipper实现页面左右滑动

说到android的左右滑动效果我们可以说是在每个应用上面都可以看到这样的效果,不管是微博,还是QQ等。实现左右滑动的方式很多,有ViewPaer(不过这个和需要android-support-v4.jar的支持),自定义实现Viewgroup,gallery等都可以达到这种效果。这里做下ViewFliper实现左右滑动的效果。 以下会会用到的技术有: 1、ViewFlipper 2、G

自由世界的专栏 2261

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

实现android左右滑动效果:ViewFlipper、ViewPager、HorizontalScrollView

ViewFlipper 本例来源:www.ideasandroid.com 原文: http://www.ideasandroid.com/archives/414 使用ViewFlipper来将您要来回拖动的View装在一起,然后与GestureDetector手势识别类来联动,确定要显示哪个View,加上一点点动画效果即可。比如当手指向左快速滑动时跳转到上一个View,手指向右快速

2509

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Android ViewFlipper既可以滑动又可以点击

public class HeadActivity extends Activity implements android.view.GestureDetector.OnGestureListener{ private int[] imageID = {R.drawable.a, R.drawable.b, R.drawable.c}; //将要滚动的图片存到数组 private View

stryker的专栏 1613

动态手势滑动ViewFlipper实现

本文介绍了Android中ViewFlipper的两种使用方法:静态导入(通过XML布局直接添加子View)和动态导入(通过代码addView方法添加)。详细讲解了setInAnimation、showNext等常用方法,并提供了两个实现示例:1)静态导入实现图片轮播,通过设置切换间隔自动播放;2)动态导入实现支持手势滑动的ViewFlipper,通过GestureDetector监听手势实现左右滑动切换。文章包含完整的动画XML和Java代码实现,最后作者谦虚地表示欢迎指正,并鼓励读者点赞收藏。

sinat_57153473的博客 651

使用ViewFlipper实现屏幕切换动画效果

1. ViewFlipper是Android系统自带的一个多页面管理控件,它可以实现自界面的自动切换:两种导入方式:静态导入:在layout文件中直接导入,因为这种方法写死了文件,所以一般情况下不使用静态导入方法。动态导入:addView()方法 2. ViewFlipper常用方法:

donggege521的博客 218

android viewflipper 手势,Android中使用ViewFlipper进行手势切换实例

本文实例讲述了Android中使用ViewFlipper进行手势切换的方法,分享给大家供大家参考。具体实现步骤如下:首先在layout的xml文件中定义一个ViewFlipper:android:id="@+id/viewFlipper"android:layout_width="fill_parent"android:layout_height="fill_parent">android:...

weixin_39820997的博客 185
下一篇: Android自定义SurfaceView类和一般控件的xml布局使用
IDTC
博客等级 码龄15年 22粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值