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


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

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

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

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

3.多 View时的控件绑定;

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

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

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

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

这个程序的源代码下载地址在帮客之家的1号FTP服务器里,下载地址:

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

用户名:www.bkjia.com

密码:www.muu.cc

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

下载方法见这里 http://www.bkjia.net/thread-1187-1-1.html

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

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

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

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

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




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

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

相关内容