마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Window에 바로 View를 그려넣고 싶습니다.

0 추천
안녕하세요.

User가 원하는 때 원하는 Icon을 화면에 항상 띄워놓고 싶습니다.

 

service에서 아래 코드 활용하여 구현은 했습니다.

        mParams = new WindowManager.LayoutParams(
            300,
            300,
            WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
            WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
            | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
            | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
            PixelFormat.TRANSLUCENT);
        mParams.gravity = Gravity.RIGHT | Gravity.BOTTOM;
        mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
        mWindowManager.addView(mPopupView, mParams);

 

화면 구석에 이쁘게 아이콘이 나오는데 문제는 저놈이 Keyguard 위로 올라오네요.

그렇게 까지는 하고 싶지 않은데요.. ㅜㅜ

그래서 Type을 바꿔봤습니다(낮은 level로...)

그랬더니 다른 녀석들은 touch event를 먹네요.

flag를 not_focusable, watch_outside_touch 등등 줘봐도 touch event를 먹더라구요.

TYPE_SYSTEM_OVERLAY 처럼 touch event는 먹지 않고

level이 낮은 다른 type처럼 Keyguard에는 안나오게 하는 방법 없을 까요?

고수분들 답변 기다리겠습니다.
익명사용자 님이 2015년 12월 8일 질문

1개의 답변

0 추천
플로팅 서비스 구현하시려고 하는것 같은데 키보드만 따로 구분하려고 하는 API 는 없는걸로 압니다. ]

다른방법으로 구현하시는게 나을것 같습니다.

키보드가 올라왔는지 안올라왔는지에 대한 판단이 우회적으로 가능한데.. 그걸이용해서 상황에 따라

플로팅 서비스를  ON/OFF 해주는게 답입니다. 키보드 영역안에 있는지 까지 정확하게 판단하려면

조금 번거롭겠지만요.
라쎄린드 (25,460 포인트) 님이 2015년 12월 9일 답변
...