滑动切换Activity代码

最近需要对练习项目中的代码进行优化,发现很多代码写起来远比想象的困难很多。刚接触Android时间不长,很多东西都不能融会贯通,所以才会有这样的问题存在,当然学习中遇到的问题很有必要做个总结。想想这个需求也是比较简单,就是不想让右图界面上出现点击Button切换Activity,这也许是许多刚接触的朋友都会萌生的念头吧,我也不例外。
开始在网上找的方法很多都是讲到ViewPager这样的东西,Demo看了,也模仿了一个出来,但终究发现不能满足自己的需求,使用了ViewPager后,布局都是通过代码加载到第一个Activity中,无法再获取布局中的控件进行操作,所以这个方案放弃了。
        那接下来就用我的style来看看这段代码的实现。大致的思路就是找系统相关监听屏幕动作的事件方法,刚好在Activity中有onTouchEvent方法可以得到屏幕的触摸事件,参数MotionEvent event可以得到屏幕触摸的位置。突然发现这个东西没有一点技术含量,原理太简单。
        原理:通过event对象的方法event.getAction()可以获得触摸按下和触摸释放的动作,同时通过event.getRawX()和event.getRawY()又可以获得触摸点的坐标,这样,在触摸按下时记录起始点的X、Y对应值,在触摸释放量再次获得X、Y的坐标位置,通过起始和释放点的坐标,可以确定到底是向上、向下、向左还向右的操作。
        方法 onTouchEvent 代码:

public boolean onTouchEvent(MotionEvent event) {
		int action = event.getAction();
		switch (action) {
		case MotionEvent.ACTION_DOWN:
			O.X = event.getRawX();
			O.Y = event.getRawY();
			break;
		case MotionEvent.ACTION_UP:
			float x = event.getRawX();
			float y = event.getRawY();
			int slideOrientation = O.slide(x, y);
			switch (slideOrientation) {
			// case O.SLIDEUP:
			// Toast.makeText(this, "向上滑", Toast.LENGTH_SHORT).show();
			// break;
			// case O.SLIDEDOWN:
			// Toast.makeText(this, "向下滑", Toast.LENGTH_SHORT).show();
			// break;
			case O.SLIDELEFT:
				// Toast.makeText(this, "向左滑", Toast.LENGTH_SHORT).show();
				startActivity(new Intent(this, Wizard_1_Activity.class));
				finish();
				break;
			// case O.SLIDERIGHT: //第一个设置界面不需要回退
			// Toast.makeText(this, "向右滑", Toast.LENGTH_SHORT).show();
			// break;

			default:
				break;
			}
			break;
		default:
			break;
		}
		return super.onTouchEvent(event);
	}

封装逻辑的O.java代码

package com.hitech.resxantivirus.utils;

public class O {

	public static final int SLIDEUP = 1;
	public static final int SLIDEDOWN = 2;
	public static final int SLIDELEFT = 3;
	public static final int SLIDERIGHT = 4;
	// 横轴起始座标
	public static float X = 0;
	// 纵轴起始座标
	public static float Y = 0;

	private O() {
	}

	/**
	 * 激活Activity,由屏幕Slide方向决定
	 *
	 * @param x
	 *            结束点横轴坐标
	 * @param y
	 *            结束点纵轴坐标
	 * @param cls
	 *            需要激活Activity的class
	 */
	public static int slide(float x, float y) {
		float resX = X - x;
		float resY = Y - y;
		int res = -1;
		// slideToLeft
		if (resX > 10 && resY > -10 && resY < 10) {
			res = 3;
		}
		// slideToRight
		if (resX < -10 && resY > -10 && resY < 10) {
			res = 4;
		}
		// slideUp
		if (resY > 10 && resX > -10 && resX < 10) {
			res = 1;
		}
		// slideDown
		if (resY < -10 && resX > -10 && resX < 10) {
			res = 2;
		}
		return res;
	}
}

滑动切换Activity代码

时间: 2024-10-11 18:18:14

滑动切换Activity代码的相关文章

基于jQuery左右滑动切换图片代码

分享一款基于jQuery左右滑动切换图片代码.这是一款基于jQuery实现的左右滑动切换焦点图代码.效果图如下: 在线预览   源码下载 实现的代码: <div class="v_out v_out_p"> <div class="prev"> <a href="javascript:void(0)"></a> </div> <div class="v_show"

如新闻频道滑动切换的代码

效果: collectionView的数据源方法 - (UICollectionViewCell *) collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { newsCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"news" forIndexPath:

Android的Activity屏幕切换动画(一)-左右滑动切换

这段时间一直在忙Android的项目,总算抽出点时间休息一下,准备把一些项目用到的Android经验分享一下. 在Android开发过程中,经常会碰到Activity之间的切换效果的问题,下面介绍一下如何实现左右滑动的切换效果,首先了解一下Activity切换的实现,从Android2.0开始在Activity增加了一个方法: public void overridePendingTransition (int enterAnim, int exitAnim) 其中: enterAnim 定义A

jQuery左侧图片右侧文字滑动切换代码

分享一款jQuery左侧图片右侧文字滑动切换代码.这是一款基于jQuery实现的列表图片控制图片滑动切换代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class="index-new w1200 mt30"> <div class="indexadd mt50 mb60"> <div id="banners" class="ui-banner"> <

转向移动webApp开发的前端工程师必要的代码,手机webApp触摸左右滑动切换轮播图片广告

刚进一家新公司,公司专做手机App的,由于公司业务太多,传统的方法开发app成本太高,每个app要开发几个版本,公司有个想法就是做webApp来代替传统app.我是才接触到webApp的美工一枚. 今天给小伙伴们分享一个好东西,webApp轮播效果,支持手机上用手左右滑动的效果,因为手机的触摸事件和PC端用鼠标操作的事件是不同的,所以我就需要针对移动端的设备触摸事件做相应的轮播特效.大家可以去看下易迅的:http://m.yixun.com/t/ 和淘宝的http://m.taobao.com/

Android:简单实现ViewPager+TabHost+TabWidget实现导航栏导航和滑动切换

viewPager是v4包里的一个组件,可以实现滑动显示多个界面. android也为viewPager提供了一个adapter,此adapter最少要重写4个方法: public int getCount() public boolean isViewFromObject(View view, Object o) public void destroyItem(ViewGroup container, int position, Object object)  public Object in

ViewPager页面滑动切换

我们日常生活中用到的微博,QQ,微信等app在进行页面左右滑动的时候,很多都可以用ViewPager来实现.可以说,ViewPager在android开发中十分常见并且特别实用. Viewpager在android.support.v4.view这个软件包中,  android.support.v4.view.jar是谷歌官方给我们提供的一个兼容低版本安卓设备的软件包,里面包囊了只有在安卓3.0以上可以使用的api.所以低版本开发时必须加入android-support-v4.jar,并且在XM

[Android] 使用Include布局+Fragment滑动切换屏幕

    前面的文章已经讲述了"随手拍"项目图像处理的技术部分,该篇文章主要是主界面的布局及屏幕滑动切换,并结合鸿洋大神的视频和郭神的第一行代码(强推两人Android博客),完成了下面的内容:     (1).学习使用Include布局XML     (2).通过添加适配器加载fragment     (3).实现滑动触摸切换屏幕ViewPager     (4).改变图标及背景,并响应fragment中控件及传递参数 参考资料: 郭霖大神的<Android第一行代码> 鸿

Android--ViewPager多页面滑动切换以及动画效果

背景                                                                                           ViewPager.它是google SDk中自带的一个附加包的一个类,可以用来实现屏幕间的切换.这个附加包是android-support-v4.jar. 根据屏幕的分辨率和图片的宽度计算动画移动的偏移量 代码