안드로이드 개발 정보
(글 수 1,064)
Android App.를 개발하면서 가장 자주 사용되는 것 중 하나가 바로 View customizing 일 것입니다.
일반적으로 View customizing 을 할 때 고려해야 할 size, padding 및 scrollbar 에 대해서 설명하려 합니다.
View 의 method 중에 bounds 와 관련된 가장 기본적인 method 는
Layout 들에서 호출되는 setFrame method 입니다.
이 setFrame 에서 mLeft, mTop, mRight, mBottom 들이 setting 되며,
이 값들이 실제 draw(Canvas) method 에서 사용 됩니다.
이 그림에서 알 수 있듯이,
mLeft, mTop, mRight, mBottom 은 parent 로 부터의 거리를 나타내고 있으며,
이 bounds 를 기준으로 View 를 그리기 시작합니다.
실제로 View 를 그리기 위해 중요한 또 한가지는 바로 ScrollBar 입니다.
먼저, ScrollBar 속성중에 scrollbarStyle 이 가장 중요한 역할을 차지합니다.
이 scrollbarStyle 는 아래와 같이 4개의 값을 가질 수 있습니다.
- insideOverlay
- insideInset
- outsideOverlay
- outsideInset
이 4가지의 속성을 통해 ScrollBar 의 bounds 와 내부 contents 들을 위한 padding 값에 영향을 주게 됩니다.
위의 그림은 insideOverlay 와 outsideOverlay 인 경우 ScrollBar 가 어떻게 그려지는지 보여줍니다.
이제 실제로 padding 이 어떻게 되는지 알아보겠습니다.
위와 같이 insideOverlay 와 outsideOverlay 인 경우 ScrollBar 는 padding 과 전혀 상관 없이 그려집니다.
그런데 padding 과 관련된 변수명을 자세히 보시면
left, top 과는 다르게 right, bottom 부분엔 user 라는 prefix 가 붙은 걸 보실 수 있습니다.
이와 같이 mUserRightPadding >> mRightPadding 을 변환하는 방식에서 insideOverlay 와 outsideOverlay 의 차이가 발생합니다.
위 그림에서 보는 것 처럼 outsideOverlay 에서는 mRightPadding = mUserRightPadding 으로 설정되지만
insideOverlay 에서는 mRightPadding = mUserRightPadding + [ScrollBar 두께] 로 설정되는 차이가 있습니다.
다음 기본 View 의 size, padding 및 scrollbar (2/4) 에서는 mScrollX 와 mScrollY 에 대해서 알아보도록 하겠습니다.
감사합니다.FLOO ( http://floo.co.kr/ )
2012.08.24 10:14:45
스크롤바 스타일(ScrollBar Style)에 대해서 샘플로 캡쳐된 화면입니다.
Parent View
-background = 흰색
ListView
-background = 녹색
-margin = 20dip
-padding = 30dip
-scrollbar_width = 26dip
SCROLL_INSIDE_OVERLAY
SCROLL_INSIDE_INSET
SCROLL_OUTSIDE_OVERLAY
SCROLL_OUTSIDE_INSET
참고로.. padding 없는 뷰에서는 insideoverlay 와 outsideoverlay 가 동일하고 insideinset 와 outsideinset가 동일하게 보여집니다.
UI쪽이 늘 부족하다고 생각하고 있었는데
많은 도움이 될것 같습니다.