学习安卓基础之android 拖动和拖动原理
2015-11-30 22:18
309 查看
iv_dragView是要被拖拽的view,需要重写view的ontouch方法,并且一定返回true。
<pre name="code" class="java">iv_dragView.setOnTouchListener(new OnTouchListener){ float startx = 0; float starty = 0; public boolean onTouch(View v,MotionEvent event){ switch(event.getAction){ case MotionEvent.ACTION_DOWN: //1.纪录手指第一次按下的坐标 startx = event.getRowX(); starty = event.getRowY(); break; case MotionEvent.ACTION_MOVE: //2.新的坐标 float newX = event.getRawX(); float newY = event.getRawY(); //3.计算偏移量(因为被拖动的是有具体宽和高的控件,而不是点,所以要根据偏移量计算出控件的最终位置) int dx = (int)newX - startx; int dy = (int)newY - starty; //4.根据偏移量更新控件的位置 (layout(l,t,r,b) 标注见下图) iv_dragView.layout(iv_dragView.getLeft()+dx,iv_dragView.getTop()+dy,iv_dragView.getRight()+dx,iv_dragVIew.getBottom()+dy); //5.重新纪录坐标 startx = event.getRowX(); starty = event.getRowY(); break; case MotionEvent.ACTION_UP: break; } } }
相关文章推荐
- Android Studio频繁假死解决方法记录
- Android常用控件之进度条(Progressbar)
- android 音视频直播
- Android第三方开源对话消息提示框:SweetAlertDialog(sweet-alert-dialog)
- 正则表达式匹配日期格式yyyy-mm-dd(支持闰年)
- Android之AutoCompleteTextView控件使用
- 有符号数转无符号数
- Fedora 23建立wifi热点(Android手机可用)
- 【Android】RecyclerView的OnItemClickListener点击事件处理
- Android代码混淆常见配置
- android的EditText重新获取焦点问题
- Android 中 Handler 内存泄露解决办法实例
- 九宫格解锁可用修改版
- 胖虎谈ImageLoader框架(三)
- “私人订制”——栏目管理中算法的使用
- android 学习Layout布局的使用
- Android textView属性说明
- 屏幕分辨率单位转换详解
- AlertDialog&ProgressDialog几种形式
- 【风马一族_Android】Android 前端内容1