揭秘Android界面水平滑动与竖直滑动实现

自从iphone诞生以来,利用触屏手势进行界面滑动就成了智能机程序的标配界面效果了,如果你的程序还只能用Button进行操作,那实在太out了。 现在,我来向大家介绍Android界面滑动的基本实现方法,并解释其中的一些原理。

下面先说下我将介绍的知识点:

1.Activity、Window、View之间的关系;

2.利用ViewFlipperGestureDetector(手势识别)、OnGestureListener,OnTouchListener实现界面水平滑动;

3.多 View时的控件绑定;

4.利用ScrollVeiw实现界面的竖直滑动。

先来说说 ActivityWindowView之间的关系。一些书上在介绍Activity时都说它就是我们看到的界面,这种说法是错的。从Android源代码可以知道,Activity创建时建立了一个PhoneWindow对象,它是我们实现视图的承载模型,它接收View对象后才能显示我们在界面上看到的内容。你可以把setContentView()方法换成

getWindow().setContentView(LayoutInflater.from(this).inflate(R.layout.main, null));  

界面仍然能显示,因为这才是界面显示时android实质上调用的方法。我们可以形象的理解为,Activity是个管家,管理着一扇窗户(PhoneWindow),View就是我们想贴到窗户上的窗花纸,一扇窗户自然可以换不同的窗花纸,因此一个Activity可以控制多个界面(View)就是理所当然的事了。

下面我将介绍界面滑动的代码实现。我不想仅靠贴代码和代码旁的几行注释来和大家分享这些经验,因为这种做法不但无法让人明白程序编写的顺序,也不能说明为何要这些变量和函数,它们的作用,以及需要注意的问题和自己的体会。希望大家喜欢我的分享形式。

这个程序的源代码下载地址在Linux公社的1号FTP服务器里,下载地址:

FTP地址:ftp://www.linuxidc.com

用户名:

密码:

在 2011年LinuxIDC.com\8月\揭秘Android界面水平滑动与竖直滑动实现源代码

下载方法见这里

现在开始介绍界面水平滑动的实现。

第一步,我们需要得到自己的“窗花纸”。这需要就一个LayoutInflater对象,它能将我们编写的xml格式的layout文件变为界面显示需要的View对象。我们调用LayoutInflater的from()方法,向它传入一个Context对象。

// 重点,将Context对象传入LayoutInflater.from()里,得到LayoutInflater对象            LayoutInflater factory = LayoutInflater.from(MainActivity.this);  

Inflater的意思是充气,我们应该把它理解为“渲染”。

我在layout文件里放了3个布局文件,分别是firstview.xml、secondview.xml和thirdscrollview.xml,里面只放一个TextView和一个Button就可以了。

揭秘Android界面水平滑动与竖直滑动实现


揭秘Android界面水平滑动与竖直滑动实现



然后,我们就可以把这3个xml布局文件变为View对象的窗花纸了。我们调用刚才生成的factory对象的inflate()方法来完成,向里面传入布局资源文件的R资源引用,第二个参数设为null。

// 用inflate(渲染)方法将布局文件变为View对象            View first = factory.inflate(R.layout.firstview, null);           View second = factory.inflate(R.layout.secondview, null);           View third = factory.inflate(R.layout.thirdscrollview, null);  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwgxwx.html