Java onClick事件后启动onTouchEvent
我试图在活动中设置图像按钮(单击按钮),以启用用于旋转针图形的按钮。不幸的是,无论我是否单击图像按钮,onTouchEvent都处于活动状态。在单击图像按钮之前,如何防止onTouchEvent触发Java onClick事件后启动onTouchEvent,java,android,imagebutton,touch-event,Java,Android,Imagebutton,Touch Event,我试图在活动中设置图像按钮(单击按钮),以启用用于旋转针图形的按钮。不幸的是,无论我是否单击图像按钮,onTouchEvent都处于活动状态。在单击图像按钮之前,如何防止onTouchEvent触发 public void pushClick(View pushClick) { switch (pushClick.getId()) { case R.id.btn_push: make(degrees); } } @Override public bo
public void pushClick(View pushClick) {
switch (pushClick.getId()) {
case R.id.btn_push:
make(degrees);
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
startRotating();
break;
case MotionEvent.ACTION_UP:
stopRotating();
break;
}
return super.onTouchEvent(event);
}
private void startRotating() {
returnRotating = false;
if (!keepRotating) {
keepRotating = true;
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
if (keepRotating) {
degrees = (degrees + 1) % 360;
make(degrees);
handler.postDelayed(this, INTERVAL);
}
}
}, INTERVAL);
}
}
private void stopRotating() {
keepRotating = false;
if (!returnRotating) {
returnRotating = true;
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
if (returnRotating) {
degrees = (degrees - 1) % 360;
make(degrees);
handler.postDelayed(this, INTERVAL);
}
}
}, INTERVAL);
}
}
我敢打赌有更好的方法,但我想:
private boolean buttonClicked = false;
public void pushClick(View pushClick) {
switch (pushClick.getId()) {
case R.id.btn_push:
buttonClicked = true;
make(degrees);
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if(buttonClicked)
{
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
startRotating();
break;
case MotionEvent.ACTION_UP:
stopRotating();
break;
}
}
return super.onTouchEvent(event);
}
您还可以在按下图像按钮时添加OnTouchListener(从您希望它附加到的任何视图),并在再次单击时将其删除(如果这是您想要的)。这实际上就像一个符咒!我试图找出如何使用int将if()添加到onTouchEvent,但遇到了很多语法问题。非常感谢!我确实尝试将onTouchListener作为布尔值移动到图像按钮部分,但遇到了强制关闭,因此我放弃了它,转而采用更简单的方法。