본문 바로가기
안드로이드 자바

[JAVA][Android]<color> 태그 활용하기

by teamnova 2024. 7. 9.
728x90

오늘은 <color>  태그를 활용해 텍스트뷰의 글자 색을 설정하는 예시를 보여드리겠습니다.

 

<color> 태그를 활용하면 특정 색을 지정해 여러 파일들에서 재사용할 수 있고 색 리소스가 코드와 분리 되기에 태그의 값만 바꿔 여러 파일의 코드 수정없이 색을 변경할 수있습니다.

 

 

구조

<resources></resources>: <string>, <color>, <bol>, <style> 등 여러 리소스의 root 요소를 뜻하는 태그입니다.  <color> 태그는 무조건 <resources></resources> 사이에 넣어야만 합니다.

 

<color></color>: 안드로이드 xml 파일에서 색상 리소스임을 나타내는 태그입니다. 태그 사이에 보여주고자하는 색상 값을 넣습니다.

 

name: 색상 리소스 의  식별자입니다.name의 우측에 고유이름값을 정의하면 해당 이름으로 색상 값을 불러올 수 있습니다.

 

<color></color> 사이 값: name 식별자에 대응되는 실제 색상 값입니다. 값 형태는 아래의 설명을 따릅니다.

 

 

색상 값 형태

1.#RGB 형태

3자리 16진수 색상 코드로 # 우측의 각 자리는 빨강, 초록, 파랑의 축약형을 나타냅니다.

예시) #F01 => F는 FF를 축약하여 나타낸 빨간색 값, 0은 00을 축약하여 나타낸 초록색 값, 1은 11을 축약하여 나타낸 파란색 값

 

2.#ARGB 형태

4자리 16진수 색상 코드로 # 우측의 각 자리는 알파(투명도) ,빨강, 초록, 파랑의 축약형을 나타냅니다.

예시) #8F01 => 8은 88을 축약하여 나타낸  알파값, F는 FF를 축약하여 나타낸 빨간색 값, 0은 00을 축약하여 나타낸 초록색 값, 1은 11을 축약하여 나타낸 파란색 값

 

3.#RRGGBB 형태

6자리 16진수 색상 코드로 # 우측의 각 두 자리 수는 빨강, 초록, 파랑 을 나타냅니다.

예시) #FF0011 => FF는 빨간색 값, 00은 초록색 값, 11은 파란색 값

 

4.#AARRGGBB 형태

8자리 16진수 색상 코드로 # 우측의 각 두 자리 수는 알파(투명도) ,빨강, 초록, 파랑 을 나타냅니다.

예시) #88FF0011 => 88은  알파값,  FF는 빨간색 값, 00은 초록색 값, 11은 파란색 값

 

 

 

 

 

예시

레이아웃 xml 파일 코드(activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="layout xml에서 적용한 색깔입니다."
        android:textColor="@color/colorFromXml"
        android:textSize="24sp"
        android:id="@+id/text_from_xml" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="java 코드에서 적용한 색깔입니다."
        android:textSize="24sp"
        android:id="@+id/text_from_java" />
</LinearLayout>

 

 

액티비티 자바 코드

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // XML에서 색상이 적용된 텍스트뷰
        TextView textFromXml = findViewById(R.id.text_from_xml);

        // Java에서 색상을 적용할 텍스트뷰
        TextView textFromJava = findViewById(R.id.text_from_java);


        // 색상 리소스를 가져와 textFromJava 텍스트뷰에 글자색에 적용하기
        int colorFromJava = ContextCompat.getColor(this, R.color.colorFromJava);
        textFromJava.setTextColor(colorFromJava);
    }
}

 

 

colors.xml 파일 코드

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorFromXml">#FFA500</color>
    <color name="colorFromJava">#F6B</color>
</resources>

 

 

 

실행 결과 이미지

 

 

텍스트뷰 글자색이 특정 색으로 설정된 것을 확인할 수 있습니다.