1,点击事件与触摸事件的区别?
onTouch()的返回值:
true: 在当前就消费掉
false: 先看他的子集中有没有响应(点击事件),无响应则消费触摸事件,有响应则消费为点击事件
2,双击事件
普通实现:
// 设置双击事件
iv_dragview.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (firstClickTime > 0) {
// 说明第二次点击
long sencondTime = System.currentTimeMillis();
long dTime = sencondTime - firstClickTime ;
if (dTime < 500) {
// 双击事件.
}
firstClickTime = System.currentTimeMillis();
}
});
3,多击事件
long[] mHits = new long[4];
public void click(View view) {
// src 原数组.
// srcPos 从源数组的哪个位置开始拷贝.
// dst 目标数组.
// dstPos 到目标数组的哪个位置开始拷贝.
// length 拷贝多少个元素
System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1);
mHits[mHits.length - 1] = SystemClock.uptimeMillis();
if (mHits[0] >= (SystemClock.uptimeMillis() - 500)) {
Toast.makeText(this, "恭喜你,成功了,真男人", 1).show();
}
}
onTouch()的返回值:
true: 在当前就消费掉
false: 先看他的子集中有没有响应(点击事件),无响应则消费触摸事件,有响应则消费为点击事件
2,双击事件
普通实现:
// 设置双击事件
iv_dragview.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (firstClickTime > 0) {
// 说明第二次点击
long sencondTime = System.currentTimeMillis();
long dTime = sencondTime - firstClickTime ;
if (dTime < 500) {
// 双击事件.
}
firstClickTime = System.currentTimeMillis();
}
});
3,多击事件
long[] mHits = new long[4];
public void click(View view) {
// src 原数组.
// srcPos 从源数组的哪个位置开始拷贝.
// dst 目标数组.
// dstPos 到目标数组的哪个位置开始拷贝.
// length 拷贝多少个元素
System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1);
mHits[mHits.length - 1] = SystemClock.uptimeMillis();
if (mHits[0] >= (SystemClock.uptimeMillis() - 500)) {
Toast.makeText(this, "恭喜你,成功了,真男人", 1).show();
}
}