仿照Launcher的Workspace实现左右滑动切换(上)
来源:互联网 发布:不用u盘安装ubuntu 编辑:程序博客网 时间:2024/04/30 09:32
转载自:http://www.cnmsdn.com/html/201106/1308775819ID9981.html
对于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.
运行结果:
- 仿照Launcher的Workspace实现左右滑动切换(上)
- 仿照Launcher的Workspace实现左右滑动切换(中)
- 仿照Launcher的Workspace实现左右滑动切换(下)
- 仿照Launcher的Workspace实现左右滑动切换
- 仿照Launcher的Workspace实现左右滑动切换
- Android功能总结:仿照Launcher的Workspace实现左右滑动切换
- Android功能总结:仿照Launcher的Workspace实现左右滑动切换
- Android功能总结:仿照Launcher的Workspace实现左右滑动切换
- 支持左右滑动切换的桌面---精简Launcher Workspace源码
- Android 拆解Launcher中的WorkSpace实现左右滑动效果
- 仿照QQ的左右滑动切换界面的效果
- Android: 仿Launcher Workspace左右滑动控件
- 仿Launcher Workspace左右滑动控件
- Launcher实现左右循环滑动
- Android实现左右滑动切换的效果
- 页面滑动切换(类Launcher滑动屏幕实现)
- 页面滑动切换(类Launcher滑动屏幕实现)
- 页面滑动切换(类Launcher滑动屏幕实现)
- Linux 怎样更改locale语言设置
- 电商(三)
- 关于jQuery的cookies插件2.2.0版设置过期时间的说明
- GXT之旅:第七章:MVC——MVC重构项目(2)
- AS3 洗牌阵列
- 仿照Launcher的Workspace实现左右滑动切换(上)
- ANSI C提供的文件操作标准库函数
- jquery双击进行编辑
- 银行卡四位加空格
- 仿照Launcher的Workspace实现左右滑动切换(中)
- 轻松搭建一个Windows SVN服务器
- 图文详解如何搭建Windows的Android C++开发环境(一)
- 使用asterisk构建中小企业内部免费的IP电话
- 引用传递参数