提取Launcher中的WorkSapce,可以左右滑动切换屏幕页面的类
来源:互联网 发布:lg网络电视如何使用 编辑:程序博客网 时间:2024/04/30 00:23
对于Launcher的桌面滑动大家应该都比较熟悉了,最好的体验应该是可以随着手指的滑动而显示不同位置的桌面,
比一般用ViewFlinger+动画所实现的手势切换页面感觉良好多了~~~~
分析了一下Launcher中的WorkSpace,里面有太多的代码我们用不上了(拖拽,长按,,,),把里面的冗余代码去掉得到实现滑动切换屏幕所必需的。。。。
新建一个ScrollLayout类,继承自ViewGroup。
重写onMeasure和onLayout两个方法:
其中onMeasure方法中,得到ScrollLayout的布局方式(一般使用FILL_PARENT),然后再枚举其中所有的子view,设置它们的布局(FILL_PARENT),这样在ScrollLayout之中的每一个子view即为充满屏幕可以滑动显示的其中一页。
在onLayout方法中,横向画出每一个子view,这样所得到的view的高与屏幕高一致,宽度为getChildCount()-1个屏幕宽度的view。
添加一个Scroller来平滑过渡各个页面之间的切换,
重写onInterceptTouchEvent和onTouchEvent来响应手指按下划动时所需要捕获的消息,例如划动的速度,划动的距离等。再配合使用scrollBy (int x, int y)方法得到慢速滑动小距离的时候,所需要显示的内容。最后当手指起来时,根据划动的速度与跨度来判断是向左滑动一页还是向右滑动一页,确保每次用户操作结束之后显示的都是整体的一个子view.
ScrollLayout源码:
测试程序布局:
- 提取Launcher中的WorkSapce,可以左右滑动切换屏幕页面的类
- 提取Launcher中的WorkSapce,可以左右滑动切换屏幕页面的类
- 提取Launcher中的WorkSapce,可以左右滑动切换屏幕页面的类
- 提取Launcher中的WorkSapce,可以左右滑动切换屏幕页面的类
- 提取Launcher中的WorkSapce,可以左右滑动切换屏幕页面的类
- 提取Launcher中的WorkSapce,可以左右滑动切换屏幕页面的类
- 提取Launcher中的WorkSapce,可以左右滑动切换屏幕页面的类
- 提取Launcher中的WorkSapce,可以左右滑动切换屏幕页面的类
- 提取Launcher中的WorkSapce,可以左右滑动切换屏幕页面的类
- 提取Launcher中的WorkSapce,可以左右滑动切换屏幕页面的类
- 提取Launcher中的WorkSapce,可以左右滑动切换屏幕页面的类
- 提取Launcher中的WorkSapce,可以左右滑动切换屏幕页面的类
- 页面滑动切换(类Launcher滑动屏幕实现)
- 页面滑动切换(类Launcher滑动屏幕实现)
- 页面滑动切换(类Launcher滑动屏幕实现)
- Android 页面滑动切换(类Launcher滑动屏幕实现)
- Android 页面滑动切换(类Launcher滑动屏幕实现)
- 页面滑动切换(类Launcher滑动屏幕实现)
- ubuntu配置MPICH2运行环境(转)
- 网络分层协议
- linux设备驱动程序之接收发送队列
- TQ2440烧写linux系统
- TinyOS中ONE、ONE_NOK、TCAST释义
- 提取Launcher中的WorkSapce,可以左右滑动切换屏幕页面的类
- hibernate.hbm.xml详解
- Hackers vs. Coders
- expect 用法
- watch -- 监测命令的运行结果
- 大神们,ns-allinone-2.34在虚拟机下安装失败,tk8.4.18/unix/../generic/tk3d.c错误怎么办啊
- Android dialog去除边框代码
- ubuntu Linux下实现gedit支持NesC语法高亮
- iPhone SDK开发基础之UIPageControl编程