创新源于模仿之三:实现左右两个屏幕的切换
来源:互联网 发布:mac邮件占用空间 编辑:程序博客网 时间:2024/05/28 17:07
http://blog.csdn.net/sharetop/article/details/6313654
今天第三篇,模仿UCWEB的首页,做一个可以左右滑动的双屏。
其实要实现这个效果在Android中并非难事,因为官方的Launcher已经有现成的源代码放在那儿了,就是那个Workspace.java。大家可以去http://android.git.kernel.org/ 下载。
而我们要做的事情就是分析它并精简它(毕竟我们只是打算左右滑动罢了,并不需要能创建快捷方式文件夹之类的东西,更不需要在上面拖放图标)。
因此,不管是Drop还是Drag,统统不需要了:
同时,把那些个接口所要求实现的方法,以及那些与Drag/Drop相关的成员变量都去掉吧。
看看我精简后剩下什么成员变量:
以上足矣。
然后在Eclipse中会有大量的错误,没关系,删吧。
addView 是用来在代码中添加新的子view的方法,不需要,我们只需要在layout xml中直接指定就好了。
getOpenFolder/getOpenFolders 文件夹相关的,当然不需要了。
addInCurrentScreen/addWidget 都没什么用处了,可以删掉。
与Cell相关的那些也可以删掉。
因为我们的代码不能直接访问mScrollX,所以需要换成getScrollX()。这一点是需要特别注意的。
看看我精简后都剩下些什么方法:
最后只要不报错,就OK了。
我们来分析一下几个关键的方法,其一是 onTouchEvent:
其二 snapToDestination和snapToScreen:
其三 computeScroll,让Workspace滚动到合适的位置:
基本上就是这些了,其它方法都是辅助的,很好理解。
其实有一个问题,我们发现UCWeb主页下面有三个点指示当前所处的位置,这个指示器我的想法是可以放在Workspace外面来做,利用Workspace当前的mCurrentScreen值显示出当前正处于哪个屏。
给出我的layout xml描述:
就这样了。这个分页指示器就留给你自己去发挥了。
- 创新源于模仿之三:实现左右两个屏幕的切换
- 创新源于模仿之三:实现左右两个屏幕的切换
- 创新源于模仿之三:实现左右两个屏幕的切换
- 新源于模仿之三:实现左右两个屏幕的切换
- ViewPager实现左右两个屏幕的切换
- android 实现左右两个屏幕的切换
- ViewPager-实现左右两个屏幕的切换
- ViewPager实现左右两个屏幕的切换
- ViewPager example -实现左右两个屏幕的切换
- ViewPager example -实现左右两个屏幕的切换
- ViewPager example -实现左右两个屏幕的切换
- ViewPager example -实现左右两个屏幕的切换
- ViewPager example -实现左右两个屏幕的切换
- ViewPager---ViewPager example -实现左右两个屏幕的切换
- 创新源于模仿之二:美化ListView的尝试
- 创新源于模仿之二:美化ListView的尝试
- 创新源于模仿之四:增强的ExpandableListView
- 创新源于模仿之五:做一个自己的QuickAction
- 11、二维数组、数组参数和指针参数
- 多线程断点
- php过时了还是已经没人用了?
- giblib error
- 【Struts1.2总结系列】validation.xml验证文件的配置
- 创新源于模仿之三:实现左右两个屏幕的切换
- 12、链表反转
- 设计模式原则总结--读《大话设计模式》有感
- 内核 API,第 2 部分:可延迟函数、内核微线程以及工作队列
- 加快数据库查询速度方法--建立索引
- Android开发环境配置
- java从头再来
- 创新源于模仿之四:增强的ExpandableListView
- 获得用户的真实IP地址