[220324] 코드리뷰_FloatingView

J·2022년 3월 24일
1

안드로이드

목록 보기
7/29
  • TYPE_APPLICATION_OVERLAY : 터치 이벤트가 발생하지 않아서 View의 위치 이동 불가능.

  • TYPE_PHONE : 일반 앱에서 사용되는 윈도우보다 위에 그려져야 할 때 사용한다.

  • 안드로이드에서 자주 사용되는 윈도우들
    ① FIRST_APPLICATION_WINDOW 또는 TYPE_BASE_APPLICATION (1) : 액티비티 기본 윈도우로 사용됨.
    ② TYPE_APPLICATION (2) : 다이얼로그의 윈도우로 사용된다.
    ③ FIRST_SUB_WINDOW 또는 TYPE_APPLICATION_PANEL (1000) : 팝업 윈도우 혹은 팝업 메뉴에 사용된다.
    ④ TYPE_APPLICATION_MEDIA (1001) : SurfaceView가 사용하는 윈도우로, 동영상 재생 등에 사용된다.
    ⑤ TYPE_APPLICATION_ATTACHED_DIALOG (1003) : 옵션/컨텍스트 메뉴에 사용된다.
    ⑥ TYPE_TOAST (2005) : 토스트팝업에 이용된다. 사용자 이벤트를 받을 수 없는 그리기 전용 이벤트이다.
    ⑦ TYPE_PHONE (2002) : 일반 앱에서 사용되는 윈도우보다 위에 그려져야 할 때 사용된다.
    ⑧ TYPE_SYSTEM_ALERT (2003) : 시스템의 알림 화면에 사용된다 (전화 알림 화면, ANR 등)
    ⑨ TYPE_SYSTEM_OVERLAY (2006) : TYPE_PHONE 윈도우 위에 그려져야 할 때 사용된다. 사용자 이벤트를 받을 수 없는 그리기 전용 윈도우다.
    ⑩ TYPE_KEYGUARD (2004) : 잠금화면에 사용된다.
    ⑪ TYPE_KEYGUARD_DIALOG (2009) : TYPE_KEYGUARD 타입 위에 그려져야 할 때 사용된다.
    ⑫ TYPE_WALLPAPER (2013) : 안드로이드 바탕 화면을 위해 사용된다.

  • 윈도우 속성의 플래그
    ① FLAG_ALT_FOCUSABLE_IM : 보여지는 윈도우 뒤에 입력기가 구동되어 있다면, 입력기를 내리지 않고 윈도우가 보여지도록 한다.
    ② FLAG_BLUR_BEHIND (API 14부터 지원안함) : 윈도우의 배경을 흐리게한다.
    ③ FLAG_DIM_BEHIND : 윈도우의 배경을 어둡게한다. LayoutParams dimAmount 속성값으로 어두운 정도를 설정할 수 있다.
    ④ FLAG_FULLSCREEN : 윈도우 영역을 상태바 윈도우 영역을 포함한 화면 전체로 설정한다.
    ⑤ FLAG_HARDWARE_ACCELERATED (API 11부터 지원함) : 하드웨어 가속(GPU) 기능을 지원하여 윈도우를 그린다.
    ⑥ FLAG_IGNORE_CHEEK_PRESSES : 사용자 의도가 아닌 이벤트는 무시한다. 예를 들어 통화중 사용자 뺨이 화면에 닿는 이벤트 등은 무시한다.
    ⑦ FLAG_KEEPS_SCREEN_ON : 화면을 켜진 상태로 유지한다.
    ⑧ FLAG_LAYOUT_IN_SCREEN : 일반적으로 윈도우 영역은 상태바 영역은 제외한다. 하지만 해당 플래그를 설정하면 상태바 영역도 윈도우 영역에 포함된다.
    ⑨ FLAG_LAYOUT_NO_LIMITS : 일반적으로 윈도우는 화면 밖의 영역에 그려질 수 없다. 하지만 해당 플래그를 설정하면 윈도우 영역의 제한을 없애 화면 밖에도 배치할 수 있다.
    ⑩ FLAG_NOT_FOCUSABLE : 윈도우가 포커스를 받지 못한다.
    ⑪ FLAG_NOT_TOUCHABLE : 윈도우가 터치 이벤트를 받지 못한다.
    ⑫ FLAG_NOT_TOUCH_MODAL : 윈도우 영역 밖의 다른 윈도우가 터치 이벤트를 받을 수 있도록 한다.
    ⑬ FLAG_SECURE : 화면 보안을 위해 해당 윈도우가 캡처되지 않도록 한다.
    ⑭ FLAG_SHOW_WHEN_LOCKED : 잠금 화면이 설정된 상태에서 윈도우를 보여주도록 한다.
    ⑮ FLAG_SPLIT_TOUCH (API 11부터 지원) : 한 윈도우에서 다른 윈도우로 이어지는 터치 이벤트를 지원한다.
    ⓐ FLAG_TURN_SCREEN_ON : 화면이 꺼져 있다면 켠다. 단, 잠금화면이 설정되 있지 않아야 동작한다. 또한 잠금화면이 설정되어 있더라도 화면을 켜고 싶다면 추가로 FLAG_SHOW_WHEN_LOCKED를 설정하면 된다.
    ⓑ FLAG_WATCH_OUTSIDE_TOUCH : 윈도우 밖의 영역을 터치했을 경우 ACTION_OUTSIDE 터치 이벤트를 받을 수 있도록 한다.

0개의 댓글