onTouch的方法需要实现 implements View.OnTouchListener接口
下面是我的xml代码简单定义几个按钮
<Button
android:id="@+id/up"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="上"/>
<Button
android:id="@+id/left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="左"/>
<Button
android:id="@+id/right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="右"/>
</LinearLayout>
<Button
android:id="@+id/down"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="下"/>
java.代码
//register event
findViewById(R.id.up).setOnTouchListener(this);
findViewById(R.id.left).setOnTouchListener(this);
findViewById(R.id.right).setOnTouchListener(this);
findViewById(R.id.down).setOnTouchListener(this);
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
//getAction:触摸动作的原始32位信息,包括事件的动作,触控点信息
int action = arg1.getAction();
//ACTION_CANCEL离开按键去屏幕的其他地方,或者直接提起手离开屏幕
if (action == MotionEvent.ACTION_CANCEL || action == MotionEvent.ACTION_UP) {
ptz = PTZ.Stop;
//当按下一,手势一直不保持不动,判断为按下
} else if (action == MotionEvent.ACTION_DOWN) {
int viewId = arg0.getId();
switch (viewId) {
case R.id.up:
//你想要干的事情
break;
case R.id.down:
//你想要干的事情
break;
case R.id.left:
//你想要干的事情
break;
case R.id.right:
//你想要干的事情
break;
}
}
return false;
}
}