原文地址: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仿淘宝商品浏览滑(拖)动查看详情界面相关推荐

  1. Android开发之仿淘宝商品详情页

    看到有人在问如何实现淘宝商品详情页效果,手痒了就撸了一个,献上效果图 大致梳理一下思路,这里不提供源码 状态栏透明使用开源库StatusBarCompat,为了兼容手机4.4 dependencies ...

  2. 仿淘宝商品浏览界面, 向上拉查看详情

    最新项目中有展示类似淘宝商品详情的功能,主要实现  向上拉查看详情,百度一搜,发现有大神已经实现这个效果了 http://blog.csdn.net/zhongkejingwang/article/d ...

  3. 安卓开发之用RecyclerView做陈列式布局(仿小红书首页/淘宝商品浏览)

    安卓开发之用RecyclerView做陈列式布局 一.使用RecyclerView要先导入recyclerview-v7库 二.在layout文件夹内,新建一个xml文件,编写你要展示的item的样式 ...

  4. android版高仿淘宝客户端源码V2.3

    android版高仿淘宝客户端源码V2.3,这个版本我已经更新到2.3了,源码也上传到源码天堂那里了,大家可以看一下吧,该应用实现了我们常用的购物功能了,也就是在手机上进行网购的流程的,如查看产品(浏 ...

  5. 仿淘宝商品放大展示效果制作(放大镜效果)

    如果您觉得这篇文章有用,欢迎点赞收藏或有什么建议请在评论区留言,我看到后会第一时间回复的,谢谢! (分享时刻) mac上取色比较好用的小工具:啜色: 好用的截屏小工具:Snipaste (常用的一个功 ...

  6. Android 仿淘宝商品详情页下拉足迹Demo

    DropDownMultiPager 仿淘宝等商品详情页下拉足迹效果SimpleDemo 可colne之后看MainActivity的调用,方便二次开发 依赖 compile 'com.nineold ...

  7. Android studio(仿淘宝java实现)

                       记录一下大三第一学期首次接触Android studio,本人真的是个菜鸡,不喜勿喷.                               首先分享一下我 ...

  8. 仿淘宝商品界面(html div+css)

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  9. 仿淘宝商品详情-点击显示大图,可滑动

    现在在做一个商城类的项目: 大家都用过淘宝,需求就是要求仿淘宝的效果做一个, 直接上图 用到了一个项目PhotoView 大家运行一下看最后一个项目,把单一的图片显示改成VIewpager就好.

  10. android 数据重构(仿淘宝浏览记录,足迹)

    数据结构 ->数据重构 原因 处理这个数据的主要原因是,后台服务器返回的数据格式在ios那边因为其控件可以对数据进行分区显示,可以直接处理,而在android上我们显示控件就是listview, ...

最新文章

  1. 设置activity图标
  2. 1、Math类的常用方法
  3. 【caffe解读】 caffe从数学公式到代码实现4-认识caffe自带的7大loss
  4. android4.0 菜单,Android 4.0.4系统曝光 增新Power菜单
  5. fir.im Weekly - 1000 个 Android 开源项目集合
  6. vc 6.0 显示文件全路径_配送路径规划思考(十二)
  7. tomcat8开启远程debug
  8. 【每日算法Day 70】图解算法:小学生都会的数块数问题,你会吗?
  9. Fortran入门教程(一)——引入篇
  10. CASS删除分幅后图框内部十字丝
  11. innerHTML和outerHTML区别
  12. 优秀项目经理的五大核心能力
  13. antd DatePicker 日期国际化错误 中英文混合存在(月份,星期英文,其他中文)
  14. Java8 jdk1.8新特性
  15. tableau之仪表板与故事
  16. Linux命令-PV
  17. win10svn图标(绿色勾)不显示
  18. SQLite的下载与配置
  19. 月租最便宜的手机卡_月租最便宜的手机卡:联通19元手机卡套餐怎么免费办理?...
  20. ueEditor 增加插件,超级方便

热门文章

  1. oracle sde 千万数据,Oracle+sde数据备份恢复(转自GIS帝国论坛)
  2. python循环结构高一信息技术_高一信息技术For循环语句公开课【2019原创资源大赛】...
  3. ASEMI整流桥S25VB100,S25VB100参数,S25VB100应用
  4. 独家专访VB100:趋势科技退出缘于新病毒检测失败
  5. python程序设计课程设计二级减速器_2020中国大学mooc《高级语言程序设计(Python)CAP》答案在线查题2020知到《数据库...
  6. 【ARM】Linux驱动移植
  7. ListView分页显示数据
  8. VS2005 安装 WTL80
  9. 今日头条的针锋相对让腾讯开始焦虑,天天快报能否占据一席之位?
  10. Ubuntu 16.04 安装QQ解决方案