gpt4 book ai didi

java - 使用状态来管理 onTouchEvent

转载 作者:行者123 更新时间:2023-12-01 23:20:31 26 4
gpt4 key购买 nike

我正在制作一个简单逻辑电路的单屏应用程序。我正在使用 onTouchEvent 来处理用户交互。我现在正在使用 ACTION_UPACTION_MOVEACTION_DOWN,但这只允许我使用一种手势。我希望能够在用户界面中选择一个选项,例如“AND”门。我想用一次触摸来选择我想要做的事情,然后用下一次触摸将门放置在屏幕上。相反,我的 onTouchEvent 只允许我触摸我想要的组件,并且我必须将手指放在屏幕上才能将其拖动到我想要放置的位置。这不是我想要的。

我尝试研究如何实现某种状态变量以允许 onTouchEvent 等待下一次触摸,但我认为我没有正确理解如何实现它。

@Override
public boolean onTouchEvent(MotionEvent motionEvent) {
Log.d("Debugging", "In onTouchEvent");

if((motionEvent.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_DOWN) {
Touch.horizontalTouched = (int)motionEvent.getX()/ grid.getBlockSize();
Touch.verticalTouched = (int)motionEvent.getY()/ grid.getBlockSize();
whatWasTouched = whatWasTouched(Touch.horizontalTouched, Touch.verticalTouched);

}else if((motionEvent.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_MOVE){
//do nothing, finger is moving on screen
}
else if((motionEvent.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_UP){
Touch.secondHorizontalTouch = (int)motionEvent.getX()/ grid.getBlockSize();
Touch.secondVerticalTouch = (int)motionEvent.getY()/ grid.getBlockSize();
placeComponent();
draw();
}
return true;
}

我希望我在屏幕上的第一次触摸能够选择一个选项,例如:“AND”、“OR”、“NOT”、“SWITCH”、“EDIT”等,然后我的第二次触摸完成所需的行动。我还希望能够触摸放置在屏幕上的组件,然后触摸另一个组件,以便将它们连接在一起。

最佳答案

默认情况下,Android 中的事件监听器用于等待 - 您无需提供任何延迟。

只需在 ImageView 上设置 onTouchEvent(...) 监听器并显示第一个位图。当 ImageView 被触摸时,显示下一个位图,依此类推。您所要做的就是记录触摸的次数,以便知道要显示哪张图像(图像 1、2、3、4 等)。

示例...

public class LoadImage extends Activity {

int imageNumber = 1;

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

//get an image and create a bitmap from it

ImageView imageView = (ImageView) findViewById(R.id.imageView);
imageView.setImageBitmap(bitmap);

}

@Override
public boolean onTouchEvent(MotionEvent evt) {
if (evt.getAction() == MotionEvent.ACTION_DOWN) {
imageNumber++;
switch (imageNumber) {
case 2:
// show image 2
break;
case 3:
// show image 3
break;
...
}
return true;
}
return false;
}

}

关于java - 使用状态来管理 onTouchEvent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58330474/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com