gpt4 book ai didi

android:如何在不触发点击的情况下捏缩放(ACTION_DOWN)

转载 作者:行者123 更新时间:2023-11-29 14:03:57 26 4
gpt4 key购买 nike

目前,我为我的绘图应用程序实现了缩放功能,效果很好。只是几行让你知道我在说什么:

setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent rawEvent) {
WrapMotionEvent event = WrapMotionEvent.wrap(rawEvent);

// Handle touch events here...
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
drawSomethingHere();
case MotionEvent.ACTION_POINTER_DOWN:
startZoomingModeHere();
...

所以我想要的是:一根手指画画,两根手指缩放。问题是:在第二根手指接触表面之前,总是会触发 ACTION_DOWN 事件。所以每次我想缩放时,我的应用程序都会在缩放模式启动之前绘制一个点。

有人知道如何解决这个问题吗?

最佳答案

我认为你应该在开始绘制之前等待几毫秒,因为不可能在同一毫秒内恰好放置两个手指。

您可以让一个 bool 变量等待。

boolean boolean_pointer_down = false;

switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
// Start a thread to call drawSomethingHere in 300 - 700 milliseconds
// if action_pointer_down haven’t been called.
new ThreadDraw().start();
case MotionEvent.ACTION_POINTER_DOWN:
boolean_pointer_down=true;
startZoomingModeHere();
....

//Method run in the thread
public void run(){
wait(300); //if the user didn't put more fingers in 300 ms he's not going to zoom
if (!boolean_pointer_down){
drawSomethingHere();
boolean_pointer_down = false;
}
}

关于android:如何在不触发点击的情况下捏缩放(ACTION_DOWN),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8202209/

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