onTouchListener不是在冰淇淋三明治之上工作,但它正在使用姜饼

时间:2013-02-07 06:56:33

标签: android android-4.0-ice-cream-sandwich ontouchlistener

我已在我的服务类中实施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;
}

3 个答案:

答案 0 :(得分:0)

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

请参阅:Android: How to detect double-tap?Android multi touch and double tap working together for an imageview

答案 1 :(得分:0)

为什么你要归还假?你应该在触摸听众身上回归真实!! 抱歉,你能告诉我你想用触摸听众做什么吗?我可以在你的代码上看到你只显示Toast。如果你想点击进行。只需使用OnClickListener而不是触摸侦听器!

答案 2 :(得分: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;
}

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