Android学习系列(11)--App列表之拖拽ListView(下)

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-02 04:44 点击:

接着上篇Android学习系列(10)--App列表之拖拽ListView(上)我们继续实现ListView的拖拽效果。

7.重写onTouchEvent()方法。
     在这个方法中我们主要是处理拖动和放下。
     拖动是选中项的影像随着手指滑动;放下是在拖动结束的时候交换数据。
     方法的整体结构如下:

view sourceprint?01 /** 

02  * 触摸事件 

03  */

04 @Override

05 public boolean onTouchEvent(MotionEvent ev) { 

06     //如果dragmageView为空,说明拦截事件中已经判定仅仅是点击,不是拖动,返回 

07     //如果点击的是无效位置,返回,需要重新判断 

08     if(dragImageView!=null&&dragPosition!=INVALID_POSITION){ 

09         int action = ev.getAction(); 

10         switch(action){ 

11             case MotionEvent.ACTION_UP: 

12                 int upY = (int)ev.getY(); 

13                 //释放拖动影像 

14                 stopDrag(); 

15                 //放下后,判断位置,实现相应的位置删除和插入 

16                 onDrop(upY); 

17                 break; 

18             case MotionEvent.ACTION_MOVE: 

19                 int moveY = (int)ev.getY(); 

20                 //拖动影像 

21                 onDrag(moveY); 

22                 break; 

23             default:break; 

24         } 

25         return true; 

26     } 

27     //这个返回值能够实现selected的选中效果,如果返回true则无选中效果 

28     return super.onTouchEvent(ev); 

29 }

8.拖动影像。
      拖动的时候,我们调用了onDrag(int y)方法,主要做的事情是,让选中项的影像随这手指滑动起来。如下:

view sourceprint?1 if(dragImageView!=null){ 

2     //设置一点点的透明度 

3     windowParams.alpha = 0.8f; 

4     //更新y坐标位置 

5     windowParams.y = y - dragPoint + dragOffset; 

6     //更新界面 

7     windowManager.updateViewLayout(dragImageView, windowParams); 

8 }

      当数据集合很大的时候,还需要在拖动到上部区域或者下部区域的时候滚动列表,使用ListView自带的方法setSelectionFromTop()。
       一个可以滚动的拖拽列表雏形就出来了,最终onDrag()方法代码如下:

view sourceprint?01 /** 

02  * 拖动执行,在Move方法中执行 

03  * @param y 

04  */

05 public void onDrag(int y){&

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Android 完全退出程序
    • 原创:Android应用开发-Andorid歌词秀,含源码
    • android 屏幕保护
    • Android手机软件汉化教程---第四课 dex文件汉化
    • 众多Android 开源项目推荐,给力工作给力学习
    • Android Audio代码分析4
    • Android得到已安装的应用程序信息!
    • Android开发者指南(29) —— USB Host and Accessory
    • Android成长的幕后推手:工程师鲁宾
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1