首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Action_up让onTouch什么都不做

如何使用Action_up让onTouch什么都不做
EN

Stack Overflow用户
提问于 2017-07-08 06:38:25
回答 1查看 71关注 0票数 0

我正在制作一个应用程序,用我的智能手机和arduino控制一辆玩具车,我设法连接到蓝牙和模块,并用LED灯进行测试,一切都很好。我只有一个担心,假设我希望汽车从on Touch方法向前移动,就像这个代码(但这个是用于LED灯)

代码语言:javascript
复制
LED_On.setOnTouchListener(new View.OnTouchListener(){
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_DOWN) {
                LEDOn();
                return true;
            } else if (event.getAction() == MotionEvent.ACTION_UP) {
                LEDOff();
                return false;
            }
            return false;
        }
    });

现在我的问题是,当我把手从触摸屏上移开时,我想要一种方法或技术来让应用程序什么都不做,因为现在我为每个Action_Down和Action_UP创建了一个单独的方法,这使得我每次都指定一个不同的字母发送给arduino来对玩具车进行更改,这样做我就会有大量的字母,这是不方便的。

代码语言:javascript
复制
public void LEDOn(){
    // turn LED On
    if (btSocket!=null)
    {
        try
        {
            btSocket.getOutputStream().write("F".toString().getBytes());
        }
        catch (IOException e)
        {
            msg("Error");
        }
    }
}

另外,如果有人能解释一下多点触控到底是如何工作的,我将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2017-07-09 23:30:50

对于任何面临同样问题的人来说,制作Rc控制器就是我修复它的方法。

我使用这个代码来发送z字符,每当我做一个动作向上,例如我触摸前进按钮,然后释放,当我释放时,我将发送z字符。

代码语言:javascript
复制
if(btSocket!=null){
        try
        {
            btSocket.getOutputStream().write("z".toString().getBytes());
        }
        catch (IOException e)
        {
            msg("Error");
        }
    } 

这是我的反向onTouch的方法。

代码语言:javascript
复制
downView.setOnTouchListener(new View.OnTouchListener(){
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_DOWN){
                downOn();
                return true;
            } else if (event.getAction() == MotionEvent.ACTION_UP) {
                directionsOff();
                return true;
            }
            return false;
        }
    });

这是发送字符D的方法

代码语言:javascript
复制
public void downOn(){
    // starts moving backwards
    if(btSocket!=null){
        try
        {
            btSocket.getOutputStream().write("D".toString().getBytes());
        }
        catch (IOException e)
        {
            msg("Error");
        }
    }
}

这是我使用的arduino代码,我在LED上测试。

代码语言:javascript
复制
if (state == 'D') {
  digitalWrite(LED, HIGH);
}else if (state == 'F') {
  digitalWrite(LED2, HIGH);
}else{
  digitalWrite(LED, LOW);
  digitalWrite(LED2, LOW);
}

我希望我说得够清楚了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44980626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档