Mobile/Android(Java)

[Android/java] style.xml (스타일 및 테마)를 활용하여 속성 설정하기

개발왕 금골드 2020. 2. 16. 11:54
반응형

안녕하세요 골드입니다.

오늘은 xml파일을 사용해서 속성을 간편하게 적용하는 방법에 대해서 설명하겠습니다.

 

xml 파일에서 속성들을 정의하다보면 반복되는 코드들이 눈에 보일 때가 있습니다.

이렇게 반복되는 코드들을 따로 xml에 저장해놓고 필요할 때마다 꺼내 쓰면 

코드도 줄어들고 유지보수에 매우 용이합니다.

 

반복되는 스타일이나 테마를 하나의 코드로 반복해서 사용하는 것과 더불어서

어플리케이션을 국제화 해야 한다면 하나의 text 값을 다양한 언어로 해석해야 합니다.

그때마다 해당 text 값이 포함되어 있는 java(kotlin) 코드 안에서

if문이나 등등 방법으로 분기 처리를 하는 것 보다

하나의 xml 코드 안에서 분기처리를 해 놓으면 자동으로 해당 지역에 따라서 변하는 모습을 볼 수도 있습니다. 

 

1. XML 파일에서 <style> 만들기

res -> values 폴더에 .xml 파일을 만듭니다.

반드시 res -> values 폴더 안에 확장자가 xml인 파일이어야 한다는 점에 주의하세요.

 

저는 정의되어 있는 styles.xml 파일에 스타일을 만들겠습니다.

<resources> 태그 안에 주석으로 Base application theme 라고 써있습니다.

여러분이 사용하였던 AppTheme가 여기에 저장되어 있었습니다.

 

밑에 새로운 <style> 태그를 작성합니다. name 속성은 FontStyle이라고 짓겠습니다.

<style> 태그 밑에 <item> 태그에 name 속성을 작성합니다.

인텔리젠스를 통해 보시면 알겠지만,

단순히 text style 뿐만 아니라 다양한 속성을 정의할 수 있습니다.

 

저는 textColor와 textSize 속성을 FontStyle로 정의했습니다.

 

2. 다른 XML파일에서 <style> 태그 사용하기

딱 한 줄이면 됩니다.

style="@style/(여러분이 <style> 안에 지은 이름)"

 

res -> value 폴더에 .xml 파일을 만들고

그 안에서 <style> 태그에 정의한 name 속성의 이름을 사용하면 됩니다.

 

어플리케이션에 크기(혹은 부피)가 클수록 이러한 코딩은 빛을 보게 될 것입니다.

 

더 자세한 정보는 Android 공식 API에서 확인 가능합니다.

https://developer.android.com/guide/topics/ui/themes.html?hl=ko

 

스타일 및 테마  |  Android 개발자  |  Android Developers

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 …

developer.android.com

 

여기까지 골드였습니다.

감사합니다.

 

참고자료 : https://developer.android.com/guide/topics/ui/themes.html?hl=ko

반응형