오늘은 <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>
실행 결과 이미지
텍스트뷰 글자색이 특정 색으로 설정된 것을 확인할 수 있습니다.
'안드로이드 자바' 카테고리의 다른 글
[JAVA][Android][PHP]json_encode 안드로이드 전송 / UTF-8 변환 (2) | 2024.07.12 |
---|---|
[Java][Android] 뷰페이저2 (viewPager2) 구현 + 이미지 순서 표시 (0) | 2024.07.11 |
[JAVA][Android] 알람 앱 구현하기 - (2) SharedPreferences로 알람 데이터 CRUD (0) | 2024.07.08 |
[JAVA][Android] 리사이클러뷰 스크롤 감지하기 (0) | 2024.07.07 |
[JAVA][Android]앱의 Key Hash 값 가져오기 (0) | 2024.07.06 |