0

別の質問からのサンプル コードがあります。これは「常に一番上のボタン アプリ」であり、画面をタッチするたびに応答しています。誰でもこの問題を解決できますか? ボタンを押したときにのみアプリが応答するようにしたい..コードは次のとおりです。

public class HUD extends Service implements OnClickListener, OnTouchListener {
Button mButton;
@Override
public IBinder
onBind(Intent intent) {
return null;
}

@Override
public void onCreate() {
    super.onCreate();
    //mView = new HUDView(this);

    mButton = new Button(this);
    mButton.setText("Screenshot");
    mButton.setClickable(true);
    mButton.setOnTouchListener(this);


    WindowManager.LayoutParams params = new WindowManager.LayoutParams(
            WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT,
            WindowManager.LayoutParams.TYPE_PHONE, WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
                    | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, PixelFormat.TRANSLUCENT);
    params.gravity = Gravity.LEFT | Gravity.TOP;
    params.setTitle("Load Average");
    WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
    wm.addView(mButton, params);
}

@Override
public void onDestroy() {
    super.onDestroy();
    if(mButton != null)
    {
        ((WindowManager) getSystemService(WINDOW_SERVICE)).removeView(mButton);
        mButton = null;
    }
}

@Override
public boolean onTouch(View v, MotionEvent event) {
    Toast.makeText(this,"Overlay button event", Toast.LENGTH_SHORT).show(); //where it seems to be the problem
    return false;
}


}

力になれなくてもよろしくお願いします

4

1 に答える 1