본문 바로가기
프로그래밍 놀이터/안드로이드, Java

android:foreground 속성은 언제 쓰이는가?

by 돼지왕 왕돼지 2014. 4. 14.
반응형


android:foreground 속성은 언제 쓰이는가?


android:foreground 는 android:background 와 반대되는 개념이다.


android:foreground 의 경우는 main contents 를 가리면 안 되기 때문에 보통 alpha 를 먹인 이미지나 색상 등을 사용하며,

어떤 item 을 선택했을 때 background selector 와 같은 효과를 볼 수 있지만, 앞쪽(컨텐츠보다 z 축으로 우리 눈쪽에 가깝게)에서 press 된 상태를 보기 위해 보통 사용된다.


말인 즉슨, 만약 어떤 버튼을 클릭하는데, 그 버튼의 컨텐츠가 버튼의 거의 전부를 cover 하고 있다면,

selector를 background 로 설정했을 때, 해당 버튼을 press 하면 해당 버튼이 눌렸는지 판단하기 어렵다.

이 경우 selector 를 foreground 로 설정하면, 해당 contents 위에서 press image 혹은 color 가 보이기 때문에

선택이 되었다는 것을 직관적으로 알 수 있다. 

( 물론 위에서 설명했듯 alpha 가 들어간 녀석이여야 contents 내용을 완전 가리지 않겠지. )


단, 이 foreground 속성은 이상하게도 FrameLayout 에만 적용이 된다.

가장 많이 사용하는 LinearLayout 에는 적용이 안 된다.


하지만, 역시나 누군가가 foreground 를 지원하는 ForegroundLinearLayout 을 만들어줬다.


https://gist.github.com/chrisbanes/9091754


RelativeLayout 에 대해서는 어떻게 하냐고?


https://gist.github.com/shakalaca/6199283


요 녀석이 있다.


이 소스를 분석하면 Custom Layout 에도 충분히 foreground 속성을 적용할 수 있다.

소스 분석 후 핵심을 나중에 따로 포스팅하도록 하겠다.


참고로 ListView 형태의 것들은 android:listSelector 를 지원하므로 여기에 selector 를 지정해주면 되고,
foreground 속성을 주려면 android:drawSelectorOnTop 속성을 true 로 설정하면 쉽게 가능하다.








반응형

댓글