0

我已经ontouchlistener在我的服务类中实现了,并试图让 touch 事件运行良好,gingerbread但它不适用于高于icreamsandwich. 我正在努力解决这个问题,但即使在阅读了 stackoverflow 中的大量文档后,我也没有得到任何解决方案,

这是代码..请帮我解决这个问题。在onCreate我定义的方法中ImageButton

ImageButton imageButton=new ImageButton(this);
imageButton.setBackgroundColor(Color.TRANSPARENT);
imageButton.setOnTouchListener(this);
WindowManager.LayoutParams layoutParams=new WindowManager.LayoutParams(
            WindowManager.LayoutParams.WRAP_CONTENT,
            WindowManager.LayoutParams.WRAP_CONTENT,
            WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY, 
            WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH, 
            PixelFormat.TRANSLUCENT);
WindowManager windowManager=(WindowManager)getSystemService(WINDOW_SERVICE);
windowManager.addView(imageButton, layoutParams);`

@Override 
public boolean onTouch(View arg0, MotionEvent arg1) {
     Toast.makeText(getApplicationContext(), "Double touched "+DoubleTouch, 1000).show();
     return true;
}
4

3 回答 3

0

为什么你返回 false ?你应该在触摸监听器上返回 true !对不起,你能告诉我你想用触摸监听器做什么吗?正如我在您的代码中看到的那样,您只显示 Toast。如果你想在 click 上执行。只需使用 OnClickListener 而不是触摸监听器!

于 2013-02-07T09:03:58.437 回答
0

您必须在 onTouch 上返回 true 以指示发生了触摸事件并且您想要返回结果。

参考这篇:Android:如何检测双击?Android 多点触控和双击一起工作以获得图像视图

于 2013-02-07T08:48:05.623 回答
0

回复您的评论。好吧,您可以使用 OnClickListener 代替双击或更多!

这是一个示例:首先您创建一个Boolean变量并将其分配给true

boolean lightit = true;

第二个创建按钮点击的方法。在我的示例中,当我第一次单击按钮图像将更改为另一个图像。当再次单击按钮时,它会将其更改回旧图像。在这里按照我的示例进行操作,并希望它对您有所帮助。

        private void showHide1() {
    if (lightit) {
        if (null != bmp) {
            rotator = null;
            styleId = StyleKosh.bright;
            change = StyleKosh.changeStyle(bmp, styleId);
            view.setImageBitmap(change);
            fix.setImageResource(R.drawable.lighton);
        } else if (null == bmp) {
            final Toast tst = Toast.makeText(getApplication(),
                    "Please Select An Image First", Toast.LENGTH_SHORT);
            tst.setGravity(Gravity.CENTER, 0, 0);
            tst.show();
        }
    } else {
        rotator = null;
        change = null;
        fix.setImageResource(R.drawable.light);
        view.setImageBitmap(bmp);
    }
    lightit = !lightit;
}

然后在您的按钮上单击侦听器添加这showHide(); 是我处理按钮或图像视图单击的方式。对于多次点击,您只需要添加 if else 。请看我使用相同的方法在 fullScreen 中显示和隐藏 statusBar 但我使用的是 Gesture 而不是 OnTouchListener 。告诉我你是否想知道我如何使用 Gesture 更容易使用。

于 2013-02-07T10:42:06.317 回答