2012. 5. 10. 00:11

[펌] 항상 최상위에 나오는 뷰 만들기

출처: 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 님이 작성한 소스입니다.



AlwaysOnTop.zip



원본 글 댓글에 보면 waa 님께서 SwipePad 에 대해서 소개하는 내용이 있습니다. 이 app 이 이와 유사한 기능을 이용하여 구현하고 있습니다. 아래는 SwipePad 캡처 화면입니다. 네 귀퉁이에 빨간색으로 표현된 부분이 모든 app 에서 인식되는 hotspot 영역입니다. 나름 재밌는 app 이더군요. 분석을 떠나서 한번 사용해 보심도 괜찮을듯 합니다.





웹서핑하다가 StackOverflow 에서 다음 링크를 발견하였습니다. 비슷한 내용이군요.


http://stackoverflow.com/questions/4481226/creating-a-system-overlay-always-on-top-button-in-android