제임스딘딘의
Tech & Life

개발자의 기록 노트/Android

[안드로이드] XML을 이용한 컬러와 스타일 지정방법

제임스-딘딘 2010. 11. 25. 12:05

XML을 이용한 컬러와 스타일 지정방법

안드로이드에서는 앱 UI를 구성할 때, java코드를 사용하는 방법 외에도, XML로 레이아웃과 색상, 스타일을 지정하는 방법이 있다.

xml을 이용하여 칼라 및 스타일 지정하는 방법을 알아본다.


xml에 color설정하는 법

res/values/colors.xml이라는 파일을 만들고 아래와 같이 지정하면 된다.

<?xml version="1.0" encoding="UTF-8"?>
<resources>         
<color name="dim">#77000000</color>
<color name="transparent">#00000000</color> 
</resources> 

 이렇게 지정한 color는 android:textColor="@color/dim" 과 같은 식으로 사용이 가능하다.


xml에 color state list 설정하는 법

color를 xml에 지정하기 위해서는 res/color라는 폴더를 만든 후 xml파일을 생성하면 된다.

ex) res/color/font_set_a.xml 아래의 예는

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:color="#cccccc" />
<item android:state_pressed="true" android:color="#cccccc" />
<item android:state_active="true" android:color="#333333" />
<item android:color="#333333" />
</selector>

이렇게 선언한 셀렉터는 "@color/font_set_a"와 같이 사용이 가능하다.

 

스타일 설정

위와 같이 선언한 색상들과 폰트크기등을 합쳐서 스타일을 만들 수가 있는데, res/values/styles.xml파일을 생성 후

<?xml version="1.0" encoding="UTF-8"?>
<resources>
    <style name="font_set_a">
        <item name="android:textColor">@color/font_set_a</item>
        <item name="android:textSize">36px</item>
    </style>
    <style name="font_set_b">
        <item name="android:textColor">@color/font_set_a</item>
        <item name="android:textSize">24px</item>
    </style>
</resources>

위와 같이 묶어서 스타일을 지정할 수 있다. 이렇게 만든 스타일은 style="@style/font_set_a"와 같은식으로 사용가능하다.


액티비티의 테마지정(1)

액티비티는 기본적으로 title과 body로 구분되는 불투명한 스타일이다.

이를 변경할 수 있는데 해당 스타일은 아래와 같으며 manifest.xml의 <activity .../> 내에 지정하면 된다.

android:theme="@android:style/Theme.NoTitleBar" 타이틀바 제거

android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 타이틀바 + 인디케이터 제거

android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" 타이틀바 + 인디케이터 제거 + 투명하게 설정

 


액티비티의 테마를 xml로 지정하기(2)

액티비티의 테마를 xml로도 지정 가능하다.

values/styles.xml에 아래와 같이 속성을 지정하면 된다.


<?xml version="1.0" encoding="UTF-8"?>
<resources>
    <style name="WebTheme" parent="android:Theme">
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowBackground">@android:color/white</item>
    </style>
</resources>

 

activity의 속성에 theme를 지정

manifest.xml의 <activity .../> 내에 지정하면 된다.

android:theme="@style/WebTheme"