0

我制作了一个简单的电话板、数字 0-9、拨号等。我使用了图像按钮。然后我尝试了onclick。

onclick 的问题是它在您停止按下按钮时激活,而不是在您实际按下按钮时激活。我知道这是一件小事,但从用户的角度来看似乎很奇怪。

所以我尝试了使用 actiondown 和 imagebuttons 的 ontouch,但是多个 ontouch 不起作用,所以我添加了多点触控。现在第二个或第三个按钮使第一个按钮重新激活,而不是按下的那个按钮激活。我怎样才能得到一个标准的电话板与图像按钮加上多点触控或类似的东西一起工作?

    ImageButton ibone = (ImageButton) findViewById(R.id.imageButton1);
    ibone.setSoundEffectsEnabled(false);
    ibone.setOnTouchListener(new View.OnTouchListener() {

        public boolean onTouch(View v, MotionEvent event) {
            int tempy = event.getActionMasked();
            if (tempy == 0 || tempy == 5) { // if an action down primary or secondary touch has occurred then...
                // DO STUFF
            }
            return false;
        }

PS我试过

return true;

达到同样的效果

对不起,我真的一点都不懂多点触控的实现。

4

2 回答 2

0

答案/教程位于: http: //www.passsy.de/multitouch-for-all-views/#comment-47486

这包括您可能需要的大部分内容。

于 2013-06-11T07:21:05.330 回答
0

为什么需要多点触控?setOnTouchListener 应该在每次单击视图时触发,无论您是否使用多点触控...

尝试这个:

ImageButton ibone = (ImageButton) findViewById(R.id.imageButton1);
ibone.setSoundEffectsEnabled(false);
ibone.setOnTouchListener(new View.OnTouchListener() {

    public boolean onTouch(View v, MotionEvent event) 
    {
        switch ( event.getAction() ) {
            case MotionEvent.ACTION_DOWN: 
                ---DO STUFF---
                break;
            case MotionEvent.ACTION_UP: break;
        }
        return false; //<--Should be false for your case (I think)
    }
}
于 2013-06-06T15:08:38.403 回答