【Android进阶】Android仿淘宝商品浏览滑(拖)动查看详情界面
原文地址:http://dwtedx.com/itshare_311.html
本Demo实现了Android类似于淘宝商品页展示的滑动效果(继续拖动,查看图文详情)、如果拖动了一半就会自动滑动到顶部、并带有动画效果、原理是通过两个ScrollView来实现的、上面的ScrollView放产品简介、下面的ScrollView放详细介绍、下面是应用简单的截图、具体效果大家可以下载源代码导入Eclipse查看
private Handler handler = new Handler() {@Overridepublic void handleMessage(Message msg) {if (mMoveLen != 0) {if (state == AUTO_UP) {mMoveLen -= SPEED;if (mMoveLen <= -mViewHeight) {mMoveLen = -mViewHeight;state = DONE;mCurrentViewIndex = 1;}} else if (state == AUTO_DOWN) {mMoveLen += SPEED;if (mMoveLen >= 0) {mMoveLen = 0;state = DONE;mCurrentViewIndex = 0;}} else {mTimer.cancel();}}requestLayout();}};
重写dispatchTouchEvent方法
@Overridepublic boolean dispatchTouchEvent(MotionEvent ev) {switch (ev.getActionMasked()) {case MotionEvent.ACTION_DOWN:if (vt == null)vt = VelocityTracker.obtain();elsevt.clear();mLastY = ev.getY();vt.addMovement(ev);mEvents = 0;break;case MotionEvent.ACTION_POINTER_DOWN:case MotionEvent.ACTION_POINTER_UP:// 多一只手指按下或抬起时舍弃将要到来的第一个事件move,防止多点拖拽的bugmEvents = -1;break;case MotionEvent.ACTION_MOVE:vt.addMovement(ev);if (canPullUp && mCurrentViewIndex == 0 && mEvents == 0) {mMoveLen += (ev.getY() - mLastY);// 防止上下越界if (mMoveLen > 0) {mMoveLen = 0;mCurrentViewIndex = 0;} else if (mMoveLen < -mViewHeight) {mMoveLen = -mViewHeight;mCurrentViewIndex = 1;}if (mMoveLen < -8) {// 防止事件冲突ev.setAction(MotionEvent.ACTION_CANCEL);}} else if (canPullDown && mCurrentViewIndex == 1 && mEvents == 0) {mMoveLen += (ev.getY() - mLastY);// 防止上下越界if (mMoveLen < -mViewHeight) {mMoveLen = -mViewHeight;mCurrentViewIndex = 1;} else if (mMoveLen > 0) {mMoveLen = 0;mCurrentViewIndex = 0;}if (mMoveLen > 8 - mViewHeight) {// 防止事件冲突ev.setAction(MotionEvent.ACTION_CANCEL);}} elsemEvents++;mLastY = ev.getY();requestLayout();break;case MotionEvent.ACTION_UP:mLastY = ev.getY();vt.addMovement(ev);vt.computeCurrentVelocity(700);// 获取Y方向的速度float mYV = vt.getYVelocity();if (mMoveLen == 0 || mMoveLen == -mViewHeight)break;if (Math.abs(mYV) < 500) {// 速度小于一定值的时候当作静止释放,这时候两个View往哪移动取决于滑动的距离if (mMoveLen <= -mViewHeight / 2) {state = AUTO_UP;} else if (mMoveLen > -mViewHeight / 2) {state = AUTO_DOWN;}} else {// 抬起手指时速度方向决定两个View往哪移动if (mYV < 0)state = AUTO_UP;elsestate = AUTO_DOWN;}mTimer.schedule(2);try {vt.recycle();} catch (Exception e) {e.printStackTrace();}break;}super.dispatchTouchEvent(ev);return true;}
ScrollViewContainer类有时会报错,在199行后面加上vt=null好像就没错误了!
Demo地址:http://download.csdn.net/detail/dodod2012/9451981
【Android进阶】Android仿淘宝商品浏览滑(拖)动查看详情界面相关推荐
- Android开发之仿淘宝商品详情页
看到有人在问如何实现淘宝商品详情页效果,手痒了就撸了一个,献上效果图 大致梳理一下思路,这里不提供源码 状态栏透明使用开源库StatusBarCompat,为了兼容手机4.4 dependencies ...
- 仿淘宝商品浏览界面, 向上拉查看详情
最新项目中有展示类似淘宝商品详情的功能,主要实现 向上拉查看详情,百度一搜,发现有大神已经实现这个效果了 http://blog.csdn.net/zhongkejingwang/article/d ...
- 安卓开发之用RecyclerView做陈列式布局(仿小红书首页/淘宝商品浏览)
安卓开发之用RecyclerView做陈列式布局 一.使用RecyclerView要先导入recyclerview-v7库 二.在layout文件夹内,新建一个xml文件,编写你要展示的item的样式 ...
- android版高仿淘宝客户端源码V2.3
android版高仿淘宝客户端源码V2.3,这个版本我已经更新到2.3了,源码也上传到源码天堂那里了,大家可以看一下吧,该应用实现了我们常用的购物功能了,也就是在手机上进行网购的流程的,如查看产品(浏 ...
- 仿淘宝商品放大展示效果制作(放大镜效果)
如果您觉得这篇文章有用,欢迎点赞收藏或有什么建议请在评论区留言,我看到后会第一时间回复的,谢谢! (分享时刻) mac上取色比较好用的小工具:啜色: 好用的截屏小工具:Snipaste (常用的一个功 ...
- Android 仿淘宝商品详情页下拉足迹Demo
DropDownMultiPager 仿淘宝等商品详情页下拉足迹效果SimpleDemo 可colne之后看MainActivity的调用,方便二次开发 依赖 compile 'com.nineold ...
- Android studio(仿淘宝java实现)
记录一下大三第一学期首次接触Android studio,本人真的是个菜鸡,不喜勿喷. 首先分享一下我 ...
- 仿淘宝商品界面(html div+css)
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...
- 仿淘宝商品详情-点击显示大图,可滑动
现在在做一个商城类的项目: 大家都用过淘宝,需求就是要求仿淘宝的效果做一个, 直接上图 用到了一个项目PhotoView 大家运行一下看最后一个项目,把单一的图片显示改成VIewpager就好.
- android 数据重构(仿淘宝浏览记录,足迹)
数据结构 ->数据重构 原因 处理这个数据的主要原因是,后台服务器返回的数据格式在ios那边因为其控件可以对数据进行分区显示,可以直接处理,而在android上我们显示控件就是listview, ...
最新文章
- 设置activity图标
- 1、Math类的常用方法
- 【caffe解读】 caffe从数学公式到代码实现4-认识caffe自带的7大loss
- android4.0 菜单,Android 4.0.4系统曝光 增新Power菜单
- fir.im Weekly - 1000 个 Android 开源项目集合
- vc 6.0 显示文件全路径_配送路径规划思考(十二)
- tomcat8开启远程debug
- 【每日算法Day 70】图解算法:小学生都会的数块数问题,你会吗?
- Fortran入门教程(一)——引入篇
- CASS删除分幅后图框内部十字丝
- innerHTML和outerHTML区别
- 优秀项目经理的五大核心能力
- antd DatePicker 日期国际化错误 中英文混合存在(月份,星期英文,其他中文)
- Java8 jdk1.8新特性
- tableau之仪表板与故事
- Linux命令-PV
- win10svn图标(绿色勾)不显示
- SQLite的下载与配置
- 月租最便宜的手机卡_月租最便宜的手机卡:联通19元手机卡套餐怎么免费办理?...
- ueEditor 增加插件,超级方便
热门文章
- oracle sde 千万数据,Oracle+sde数据备份恢复(转自GIS帝国论坛)
- python循环结构高一信息技术_高一信息技术For循环语句公开课【2019原创资源大赛】...
- ASEMI整流桥S25VB100,S25VB100参数,S25VB100应用
- 独家专访VB100:趋势科技退出缘于新病毒检测失败
- python程序设计课程设计二级减速器_2020中国大学mooc《高级语言程序设计(Python)CAP》答案在线查题2020知到《数据库...
- 【ARM】Linux驱动移植
- ListView分页显示数据
- VS2005 安装 WTL80
- 今日头条的针锋相对让腾讯开始焦虑,天天快报能否占据一席之位?
- Ubuntu 16.04 安装QQ解决方案