Mobile/Android
[Android]Style, Theme
out of coding
2015. 4. 14. 17:17
앱을 개발하다보면 같은 스타일과 같은 테마를 사용하는 화면들이 많이 있습니다.
이러한 경우에 Style이나 Theme를 사용하여서 개발을 하면 일괄적으로 스타일이 변경이 되므로 개발하고 나면 참 좋습니다.
스타일.
레이아웃XML에 있는 하나의 엘리먼트 단위로 적용할수 있는 속성들의 집합. 텍스트의 컬러와 크기를 지정하는 것이 있겠죠
테마.
어플리케이션 내의 액티비티또는 하나의 액티비티 단위로 적용할 수 있는 속성들의 집합. 메뉴의 텍스트 크기와 색상을 지정하는 테마가 있겠죠.
1. 스타일 만들기
1. res/values안에 임의의 xml파일을 만들어줍니다.
2. <style></style> 엘리먼트를 추가하여 고유한 이름과 상속받을 속성을 지정합니다.
예제.
<style name="TestText" parent="@style/Text"> <item name="android:textSize">15dp</item> <item name="android:textColor">#FF00FF</item> </style>
사용.
<EditText style="@style/TestText" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="ABCD"/>
2. 테마 만들기
1. res.value안에 임의의 xml파일을 만듭니다.
2. <style></style> 엘리먼트를 추가하여 고유한 이름과 상속받을 속성을 지정합니다.
<style name="TestTheme"> <item name="android:windowNoTitle">true</item> <item name="windowFrame">@drawable/image</item> <item name="panelForegroundColor">#FF00FF</item> <item name="panelTextColor">?panelForegroundColor</item> <item name="panelTextSize">14dp</item> <item name="menuItemTextSize">?panelTextSize</item> </style>
이곳에서 사용하는 리소스참조에는 두가지 방법이 있습니다. @와 ? 이렇게 두가지.
의미는 @는 이전에 미리 정의된 리소스를 참조한다는 의미
?는 현재 로드된 테마에서의 리소스 값을 참조한다는 의미
특별한 사항은 없네요.
공부합시다.