2012. 5. 10. 00:11
[펌] 항상 최상위에 나오는 뷰 만들기
2012. 5. 10. 00:11 in 3. Implementation/Android
출처: http://blog.daum.net/_blog/BlogTypeView.do?blogid=0NADc#ajax_history_1
위 링크에는 최상위 윈도우를 만드는 방법에 대해서 소개하고 있습니다. 간단한 내용만 소개하므로 자세한 내용을 원하면 위 링크를 참고하세요.
1. 뷰 생성 및 최상위 윈도우에 추가
//최상위 윈도우에 넣기 위한 설정 WindowManager.LayoutParams params = new WindowManager.LayoutParams( WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY, //항상 최 상위에 있게 WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH, //터치 인식 PixelFormat.TRANSLUCENT); //투명 WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE); //윈도 wm.addView(tv, params); //최상위 윈도우에 뷰 넣기. permission필요.
2. 퍼미션 설정
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
3. 뷰 제거
((WindowManager) getSystemService(WINDOW_SERVICE)).removeView(tv);
다음은 like miller 님이 작성한 소스입니다.
원본 글 댓글에 보면 waa 님께서 SwipePad 에 대해서 소개하는 내용이 있습니다. 이 app 이 이와 유사한 기능을 이용하여 구현하고 있습니다. 아래는 SwipePad 캡처 화면입니다. 네 귀퉁이에 빨간색으로 표현된 부분이 모든 app 에서 인식되는 hotspot 영역입니다. 나름 재밌는 app 이더군요. 분석을 떠나서 한번 사용해 보심도 괜찮을듯 합니다.
웹서핑하다가 StackOverflow 에서 다음 링크를 발견하였습니다. 비슷한 내용이군요.
http://stackoverflow.com/questions/4481226/creating-a-system-overlay-always-on-top-button-in-android