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

android实现屏幕滑动(类似主屏滑动第一屏---->到第2屏)

阅读更多
写这篇文章的初衷是因为我学习到了新的知识,在android这个新领驭我表示我压力很大,所以得赶紧学啊。。这篇文章是原创,但是文中有部分代码是从我的下载的demo中 copy 过来的(我一向是看别的代码就学习思想,了解整个过程。。。坛友无喷!)


好了上面罗嗦了很多,先大致说一下这篇文章的重点:如题 我想怎么实现屏幕类似于主屏的那个

切换效果,但是我们 又可以让你在当前屏幕下能够上下滚动。那么怎么实现呢?其实使用

ViewFlipper 翻转视图  和 ScrollView 就行了。 思路如下:首先我们要配置一个 ViewFlipper

,这个就是用于视图的切换的,如果我在这个ViewFlipper 再添加ScrollView 是不是就可以实现

上下滚动了。。。呵呵!对吧,貌似这个逻辑是可行的哦!

好了接下来 我们一步一步的来,首先在我们在 layout 的主程序界面main.xml中添加

ViewFlipper组件然后定义其id 方便待会程序使用(暂且 就叫viewFlipper吧),然后再另外

创建一个layout文件里面定义一个ScrollView(注意这个scrollView 是你重写系统的ScrollView 一定要重写哦。。。重写的效果就是为了在 onTouchEvent 的时候能添加上 手势探测 这个类 GestureDetector 不然的话如果使用 系统的我不知道能不能实现 貌似没有直接实现的方法) 

好了准备工作就到这里然后我们开始在activity中进行设置了。。


首先呢 。。还是取得整个main.xml的View 

requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);//main里面定义我们的那个ViewFlipper 哦


然后 就是取得这个ViewFlipper 了。。他的Id 就是 viewFlipper

ViewFlipper viewFlipper = (ViewFlipper)findViewById(R.id.viewFlipper);

拿到这个对象之后最重要的就是要为这个翻转的 视图填充内容了。。。。(没有内容的话我们还让他翻转个屁啊!哈哈。。。)

所以我们要调用他的
addView
方法了,那么接下来就是取得 要添加的对

象了。这里我们定义了一个LayouInflater从当前类 来获取这个视图(ScrollView)

直接使用LayouInflater下面的
inflate(R.layout.view, null);
这个方法填充这个我们暂且就称作一个scrollView,然后通过scrollView去拿到view.xml中 定义的ScrollView(一定要是自己重写过而且已经设置了手势探测器 的哦)定义它为scrollView 好了。。

然后给scrollView  设置

scroll.setOnTouchListener(onTouchListener);
GestureDetector gestureDetector = new GestureDetector(new GestureListener());	
private View.OnTouchListener onTouchListener = new View.OnTouchListener() {
		
		public boolean onTouch(View v, MotionEvent event) {
			
			return gestureDetector.onTouchEvent(event);
		}
	};


触摸事件和手势事件。下面看一些手势监听:

GestureListener extends SimpleOnGestureListener{
//这里面就是去实现所有的方法了。。。。。。但是除了一个方法之外其他的都没必要重写

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
				float velocityY){
// TODO Auto-generated method stub
			
if (e1.getX() - e2.getX() > 100 && Math.abs(velocityX) > 50) {
				
selectedPosition = selectedPosition + 1 < titleArray.length ? (selectedPosition + 1) : 0;

viewFlipper.addView(getContentView());
				viewFlipper.setInAnimation(AnimationControl.inFromRightAnimation());
                viewFlipper.setOutAnimation(AnimationControl.outToLeftAnimation());
viewFlipper.showNext();
viewFlipper.removeViewAt(0);
		}
 else if (e2.getX() - e1.getX() > 100 && Math.abs(velocityX) > 50) {
				
selectedPosition = selectedPosition > 0 ? (selectedPosition - 1) : (titleArray.length - 1);
viewFlipper.addView(getContentView());
				viewFlipper.setInAnimation(AnimationControl.inFromLeftAnimation());
                viewFlipper.setOutAnimation(AnimationControl.outToRightAnimation());
viewFlipper.showNext();
viewFlipper.removeViewAt(0);
		} 
	return true;
    }
};



这个地方就是android 来计算你是往左滑动还是向右滑动了。。。判断却是滑动之后会重新填写你 viewFlipper里面的view(既然是用滑动就是view里面的内容就是个数组了。。)然后为viewFlipper顶一下 滑动的效果。。。。

好了整个实现 屏幕滑动的效果已经实现了。。呵呵。。你会觉得他就是一个gallery 。。我也是这么认为的。。。。但是还是有些不同的。。就是那个scrollview 。。如果你里面的内容很多的话。。呵呵。。那就可以实现滚动了。。。不过 你的再填充 ViewFlipper的时候那个布局文件。。的布局类型要是线性布局了。。。。



备注:我要补充一点,博友们可以看看。。ViewFlipper 还有一些很有趣的设置。。比如让view自动滑动。。。这就类似于现在我们在看一个小说然后设置它屏幕滚动 一样。。是不是呢??以及 滚动的频率都是可以设置的。。。
分享到:
评论
3 楼 autorun 2012-09-24  
2 楼 whao189 2011-08-22  
haizibie453 写道
我想问下,如果屏幕是一个GridView,gridView里面显示9张图片,有200张图片,该怎么做,我在网上找的laucher的例子,都是写死的数据,没法实现动态更新数据。你这个例子有实现动态更新数据吗?


你说的动态更新数据?是不是想说的和listview一样,如果滚动到最底层那么再一次加载数

据?

其实不管怎么说,布局文件我们没有必要给他定死数据,完全可以界面重用 数据完全可以重新填充的我想这就是你说的动态 填充吧! 但是我觉得 无论如何 你必须获得这些图片 保存在数组中! 然后再去判断。。。


这个demo理论上 是可以的,你可以看到 inflate(R.layout.view, null);  这一段代码的。。

如果没有错的话这个view 就是你要进行重用的gridview 里面的数据就是你要动态填充的。

不知道对你有没有用。。。一起学习吧!!在此感谢你对于我的关注!
1 楼 haizibie453 2011-08-21  
我想问下,如果屏幕是一个GridView,gridView里面显示9张图片,有200张图片,该怎么做,我在网上找的laucher的例子,都是写死的数据,没法实现动态更新数据。你这个例子有实现动态更新数据吗?

相关推荐

    Android-滑动屏幕调整屏幕亮度.zip

    Android-滑动屏幕调整屏幕亮度.zip Android-滑动屏幕调整屏幕亮度.zip Android-滑动屏幕调整屏幕亮度.zip Android-滑动屏幕调整屏幕亮度.zip Android-滑动屏幕调整屏幕亮度.zip

    Android应用源码滑动屏幕调整屏幕亮度-IT计算机-毕业设计.zip

    在Android应用开发中,滑动屏幕来调整屏幕亮度是一种常见的用户交互方式,它提供了一种直观且便捷的体验。这份毕业设计的源码演示了如何实现这一功能,这对于理解和掌握Android编程,特别是用户界面(UI)和设备交互...

    android手机屏幕滑动

    本教程将详细讲解如何在Android手机上实现屏幕滑动功能。 首先,Android屏幕滑动主要依赖于ViewGroup的子类,如LinearLayout、RelativeLayout或GridLayout,以及触摸事件的处理。当用户在屏幕上滑动手指时,系统会...

    Android仿抖音上下滑动布局

    Android 仿抖音上下滑动布局详解 Android 仿抖音上下滑动布局是...Android 仿抖音上下滑动布局是一个功能强大且灵活的布局管理器,能够满足大多数 App 的滑动需求,非常适合用于实现类似抖音 App 的上下滑动布局效果。

    Android获取在屏幕滑动速度的实例

    总结来说,通过Android的VelocityTracker类,我们可以轻松地获取屏幕滑动速度,从而实现更丰富的交互体验。在实际项目中,你可以根据具体需求调整速度阈值,以及结合其他手势检测技术,打造个性化的滑动操作。

    Android-Android实现了可以滑动左侧边缘退出Activity的功能

    在Android应用开发中,滑动边缘退出Activity是一种常见的交互设计,它可以提供更加直观和便捷的用户界面体验。本文将深入探讨如何在Android中实现这一功能,主要涉及Android自定义手势识别、视图层级管理和Activity...

    Android-Swipper-Android库可滑动手势来控制音量亮度和搜索

    Swipper库就是为了提供这样一种创新体验,它允许用户通过简单的滑动手势来控制设备的音量、屏幕亮度,甚至进行搜索操作。这篇详解将深入剖析Swipper库的核心功能、工作原理以及如何将其集成到您的Android项目中。 ...

    Android项目滑动屏幕调整屏幕亮度.rar

    这个"Android项目滑动屏幕调整屏幕亮度.rar"可能是一个包含源代码和相关资源的压缩包,用于演示或学习如何实现这一功能。下面我们将详细探讨实现这一功能所需的关键知识点。 1. **Android权限管理**: 在Android...

    滑动屏幕调整屏幕亮度-仅用于Android项目学习

    滑动屏幕调整屏幕亮度-仅用于Android项目学习

    滑动屏幕调整屏幕亮度-滑动屏幕调整屏幕亮度

    滑动屏幕调整屏幕亮度

    史上在简单滑动屏幕左侧返回

    1. **滑动返回的概念**:滑动返回是触摸屏设备上的一种手势导航方式,它允许用户通过手指在屏幕上进行横向滑动来返回上一级界面或退出当前任务。这种设计大大减少了对传统返回按钮的依赖,使用户能够更直观、自然地...

    Android应用源码滑动屏幕调整屏幕亮度.zip

    这份"Android应用源码滑动屏幕调整屏幕亮度.zip"的资源包含了一个实现这一功能的示例代码,对于学习Android自定义手势操作以及系统亮度控制的开发者来说,具有很高的学习价值。 首先,我们要理解Android系统是如何...

    Android-CardStackView-实现类似Tinder的Android滑动式卡片视图

    在Android应用开发中,创建吸引用户的交互体验是至关重要的,而`CardStackView`就是一种实现这种体验的有效工具。这个库允许开发者构建类似Tinder应用的卡片滑动界面,用户可以左右滑动卡片来浏览或操作内容。在这个...

    Android ScrollView向上滑动控件顶部悬浮效果实现

    在Android开发中,ScrollView是一种常用的布局控件,用于容纳单个子视图并允许用户滚动查看超出屏幕的内容。本文将详细讲解如何实现ScrollView向上滑动时,控件顶部悬浮的效果,这种效果通常被称为“头部固定”或...

    android 滑动屏幕改变颜色

    在Android开发中,实现“滑动屏幕改变颜色”的功能涉及到多个关键知识点,这些知识点涵盖了触摸事件处理、颜色操作以及UI控件的交互。下面将详细阐述这些内容。 1. 触摸事件处理: Android系统提供了多种事件监听...

    android滑动屏幕调整屏幕亮度.zip

    本教程将详细讲解如何实现通过滑动屏幕来调整屏幕亮度的功能,主要涉及Android SDK中的相关API以及自定义View的操作。 首先,我们要了解Android系统中控制屏幕亮度的基本原理。Android系统通过`Settings.System....

    屏幕滑动监听

    屏幕滑动监听是Android开发中的一个关键功能,它允许开发者捕获用户在设备屏幕上进行的滑动手势,以便实现各种交互效果。在这个"GestureProject"的压缩包中,很可能包含了一个示例项目,用于演示如何在Android应用中...

    android仿QQ相册滑动多选

    在Android开发中,"android仿QQ相册滑动多选"是一个常见的需求,它涉及到UI设计、触摸事件处理、图片加载以及数据管理等多个方面。在这个项目中,开发者需要实现一个可以滑动浏览相册,并且支持多选照片的功能,与QQ...

    Android实现图片左右滑动效果

    在Android开发中,实现图片左右滑动效果是常见的需求,比如在查看相册或轮播图时。这个功能可以通过多种方式实现,其中最常用的是使用ViewPager组件。ViewPager允许用户通过左右滑动手势在多个页面之间切换,非常...

Global site tag (gtag.js) - Google Analytics