티스토리 뷰
style은 View 나 window 의 외관이나 형식을 특정화시키는 속성의 집합이다. style은 높이, 패딩, 폰트 색깔, 폰트 사이트, 배경색상 등의 속성을 특정화시킨다. style은 XML 리소스에서 정의하므로 레이아웃과 분리할 수 있다.
A style is a collection of properties that specify the look and format for a View or window. A style can specify properties such as height, padding, font color, font size, background color, and much more. A style is defined in an XML resource that is separate from the XML that specifies the layout.
안드로이드에서 스타일은 웹 디장인의 CSS와 동일한 사상을 공유한다. - 컨텐츠로부터 디자인을 분리한다.
Styles in Android share a similar philosophy to cascading stylesheets in web design—they allow you to separate the design from the content.
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="#00FF00" android:typeface="monospace" android:text="@string/hello" />
를
<TextView style="@style/CodeFont" android:text="@string/hello" /> 로 변경할 수 있다.
스타일에 관련된 모든 속성은 레이아웃 XML에서 제거될 수 있다. CodeFont라고 명한 스타일 정의를 스타일 속성에 적용한다.
All of the attributes related to style have been removed from the layout XML and put into a style definition called CodeFont, which is then applied with the style attribute. You'll see the definition for this style in the following section.
테마는 전체 액티비티나 어플리케이션에 적용하는 스타일이다. 테마로 스타일이 적용되면, 액티비티나 어플리케이션에 있는 모든 뷰에 각 스타일 속성이 적용될 것이다. 예를들어 같은 CondeFont 스타일을 테마로 지정하면 액티비티 안에 있는 모든 텍스트는 같은 폰트를 가지게 된다.
A theme is a style applied to an entire Activity or application, rather than an individual View (as in the example above). When a style is applied as a theme, every View in the Activity or application will apply each style property that it supports. For example, you can apply the same CodeFont style as a theme for an Activity and then all text inside that Activity will have green monospace font.
- 스타일 정의하기 Defining Styles
- 스타일과 테마를 UI에 적용하기 Applying Styles and Themes to the UI
- 플랫폼의 스타일과 테마 사용 Using Platform Styles and Themes
스타일 정의하기 Defining Styles
res/values/ 에 XML 파일 생성
프로젝트 디렉토리 res/values/ 에 XML 파일을 저장한다.
XML 파일의 루트 노드는 반드시 <resources>가 되어야 한다.<style> 엘리먼트 추가
생성하려는 모든 스타일에는 <style> 엘리먼트를 추가하고 스타일을 식별할 수 있는 유일한 이름 name 을 지정한다.
<item>추가
<style> 엘리먼트 안에 <item>를 추가한다. <item>은 스타일의 각 속성마다 추가한다.
<resources> 엘리먼트의 각각의 자식 엘리먼트는 컴파일 타임에 어플리케이션 리소스 객체로 변환되어 스타일의 name값으로 참조된다.
스타일의 parent 속성은 선택사항이며 다른 스타일의 리소스 ID로 명시한다.
스타일과 테마를 UI에 적용하기 Applying Styles and Themes to the UI
스타일 설정 방법 2가지
- 각각의 뷰에 스타일 속성을 설정한다.
- 안드로이드 메티페스트에서 액티비티나 어플리케이션에 android:theme 속성을 추가하여 전체에 적용시킨다.
안드로이드에서 제공하는 built-in 리소스를 사용할 수 있다.