Android onTouchListner并没有在冰淇淋三明治上面工作,但它在姜饼上工作

Android onTouchListner并没有在冰淇淋三明治上面工作,但它在姜饼上工作,android,android-4.0-ice-cream-sandwich,ontouchlistener,Android,Android 4.0 Ice Cream Sandwich,Ontouchlistener,我已经在我的服务类中实现了ontouchlistener,并尝试获取触摸事件,该事件与gingerbread配合良好,但与高于icreamsandwich的内容不配合。我正在努力解决这个问题,但即使在阅读了stackoverflow中的大量文档后,我也没有得到任何解决方案 这是代码。请帮我解决这个问题。在onCreate方法中,我定义了ImageButton ImageButton imageButton=new ImageButton(this); imageButton.setBackgro

我已经在我的服务类中实现了
ontouchlistener
,并尝试获取触摸事件,该事件与
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;
}

您必须在onTouch上返回true,以指示发生了触摸事件,并且您希望返回结果


请参阅:和

为什么返回false?您应该在触摸时返回true-on-touch-listener!!
对不起,你能告诉我你想用触摸式听筒做什么吗?正如我在你的代码中看到的,你只显示吐司。如果要在单击时执行。只需使用OnClickListener而不是touch listener

回复您的评论。您可以使用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;
}
然后在按钮上单击Listener添加此
showHide()

这就是我处理点击按钮或图像视图的方式。对于多次单击,您只需添加if-else。请看,我使用相同的方法在全屏显示和隐藏状态栏,但我使用的是手势,而不是触摸。如果你想知道我如何使用这个手势,请告诉我

你能发布stacktrace吗?我也返回了true,但它不起作用,我想捕获双触事件,这就是为什么我在TouchListner上实现,请给出解决方案谢谢你的回答,实际上我想通过实现overlay widget来听服务中的双触事件,你能建议我解决这个问题吗?你不能用双倍标签。相反,您可以使用长点击。但是,您可以参考这些:或者