第一种方法:

public class MainActivity extends Activity{ //implements OnGestureListener{

private Button button;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button = (Button)findViewById(R.id.btn_hello);
button.setOnTouchListener(new onDoubleClick());
}

class onDoubleClick implements View.OnTouchListener{
int count = 0;
int firClick = 0;
int secClick = 0;
@Override
public boolean onTouch(View v, MotionEvent event) {
if(MotionEvent.ACTION_DOWN == event.getAction()){
count++;
if(count == 1){
firClick = (int) System.currentTimeMillis();

} else if (count == 2){
secClick = (int) System.currentTimeMillis();
if(secClick - firClick < 1000){
//双击事件
button.setText("wff");
}
count = 0;
firClick = 0;
secClick = 0;
}
}
return true;
}
}
}


第二种方法:

public class MainActivity extends Activity implements OnGestureListener{

private Button button;
private LinearLayout main;
private TextView viewA;
private GestureDetector gestureScanner;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

gestureScanner = new GestureDetector(this);
gestureScanner.setOnDoubleTapListener(new GestureDetector.OnDoubleTapListener(){
public boolean onDoubleTap(MotionEvent e) {
//viewA.setText("-" + "onDoubleTap" + "-");
//双击时产生一次
Log.v("test", "onDoubleTap");
return false;
}
public boolean onDoubleTapEvent(MotionEvent e) {
//双击时产生两次
Log.v("test", "onDoubleTapEvent");
viewA.setText("-" + "onDoubleTap" + "-");
return false;
}
public boolean onSingleTapConfirmed(MotionEvent e) {
viewA.setText("-" + "onSingleTapConfirmed" + "-");
//短快的点击算一次单击
Log.v("test", "onSingleTapConfirmed");
return false;
}
});


main = new LinearLayout(this);
main.setBackgroundColor(Color.GRAY);
main.setLayoutParams(new LinearLayout.LayoutParams(320,480));
main.setOrientation(LinearLayout.VERTICAL);

viewA = new TextView(this);
viewA.setBackgroundColor(Color.YELLOW);
viewA.setTextColor(Color.BLACK);
viewA.setTextSize(16);
viewA.setLayoutParams(new LinearLayout.LayoutParams(320,50));
main.addView(viewA);

setContentView(main);
}

@Override
public boolean onTouchEvent(MotionEvent me) {
return gestureScanner.onTouchEvent(me);
}

@Override
public boolean onDown(MotionEvent e) {
//viewA.setText("-" + "DOWN" + "-");
return true;
}

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
//viewA.setText("-" + "FLING" + "- "+velocityX + "- "+velocityY);
Log.v("test", "onFling "+e1.getX()+" "+e2.getX());
return true;
}

@Override
public void onLongPress(MotionEvent e) {
//viewA.setText("-" + "LONG PRESS" + "-");
}

@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
//viewA.setText("-" + "SCROLL" + "- "+distanceX + "- "+distanceY);
Log.v("test", "onScroll "+e1.getX()+" "+e2.getX());
return true;
}

@Override
public void onShowPress(MotionEvent e) {
//viewA.setText("-" + "SHOW PRESS" + "-");
}

@Override
public boolean onSingleTapUp(MotionEvent e) {
Log.v("test", "onSingleTapUp");
//viewA.setText("-" + "SINGLE TAP UP" + "-"+ i++);
return true;

}

更多相关文章

  1. Android(安卓)左边滑动菜单栏
  2. [Android]Fragment点击穿透问题
  3. 给recyclerAdapter打造通用点击事件监听设置BaseRecyclerAdapter
  4. 弹出式菜单PopMenu
  5. 使用webview打开浏览器
  6. Android实现点击切换视图并跳转传值
  7. Android轮播广告条NoticeView
  8. Android(安卓)ListView 中的CheckBox点击乱系
  9. android XMl Selector 图片背景点击和焦点获取样式

随机推荐

  1. android自定义主题样式
  2. Android版本和API Level对应关系
  3. android:inputType参数类型说明
  4. Android(安卓)SDK和最新ADT下载地址
  5. Android(安卓)ui
  6. 改写ListView样式
  7. Android百度地图开发(三):定位
  8. android中的style部分属性值介绍
  9. android隐藏EditText光标
  10. TextView常用属性