判断双击
1.要求必须在一个时间间隔内有两个单击的点击事件,
2.必须要能够识别出来,是单击还是双击
问:点击跟触摸的区别是什么?
点击:动作的组合,按下-停留一段时间-离开
触摸:只要按下,或者摸到,或者离开都是触摸事件
注意:如果点击事件跟触摸事件同时存在的话,触摸事件不要返回true要返回false因为如果触摸事件把事件消费掉的话那么点击事件就相应不到了,一个组件同时注册了点击跟触摸的事件,点击的事件会自动把事件消费掉,那么触摸事件就能循环掉用了
注意:iv_dragview_location.layout(l,t.r,b);这个更新当前的位置,只有在当前控件被完全渲染出来的时候执行才有用,如果控件还没有被完全渲染出来执行这个方法更新控件位置是没有用的,在oncreate方法里面的控件的位置跟大小只会读取xml布局文件的位置,使用layout()方法是没用的,所以我们可以在加载布局文件时设置组件在布局文件中位置的信息
ReletiveLayout.LayoutParams parsms = (LayoutParams)iv_dragview_location.getLayoutparams();
params.leftMargin = lastx;//距窗体左边的距离
params.topMargin = lasty;//距窗体上边的距离
iv_dragview_location.setLayoutParams(params);
上面的操作是在布局渲染的第一个阶段进行的
上面的方法还有一个问题就是移出窗体后,再显示界面会缩小,因为进行界面显示时系统会尽量去显示整个控件,所以就会缩小控件以显示完整控件
解决方法:可以用判断上下左右跟窗体的距离如果超过就直接break不执行
在WindowManager.LayoutParams这个对象中还一个gravity()的方法,这个方法是指定当前的控件的重心:例如params.gravity = Gravity.TOP | Gravity.left;//指定当前的控件是以屏幕的左上角对其