안드로이드 개발 팁 #13 - 공통으로 사용할 색상 리소스 만들고 뷰에 적용
이번에 정리할 내용은 당연한 것일 수 있겠지만, 실무 개발에서 바쁘다 보면 놓칠 수 있는 것이라 포스트로 정리해 봅니다. 잊지 않으려고요. ㅎㅎ
텍스트 색상 설정
TextView의 textColor 속성을 설정하여 텍스트의 색상을 변경할 수 있습니다. 아래 코드는 텍스트 색상을 빨간색으로 설정합니다.
<TextView
...
android:textColor="#FF0000"
... />
문제 - 중복된 색상 설정
그런데 텍스트 뷰는 여러 곳에서 많이 쓰이는데다 크기, 폰트, 색상 등의 속성은 동일한 것을 사용하는 경우가 많습니다. 중복된 설정이 많다는 것인데요. 위와 같이 각 속성을 상수로 적용하면 나중에 변경이 어렵다는 것이 문제입니다. 100개의 TextView들에 텍스트 색상을 빨간색으로 설정했는데, 이들을 파란색으로 변경한다고 가정해 봅시다. 그러면 100개의 TextView들을 찾아서 그것의 textColor 속성들을 바꿔줘야 합니다. 시간이 오래 걸릴 뿐만 아니라 누락 또는 오설정의 가능성도 있습니다.
대안 - 공통으로 사용할 색상 리소스 만들고 뷰에 적용
그렇다면 대안은 무엇이 있을까요? 그것을 바로 공통으로 사용할 색상 리소스를 만드는 것입니다. 방법은 다음과 같습니다.
(1) 작업 중인 모듈의 res 폴더에서 colors.xml 파일을 찾으세요.
(2) color.xml 파일에서 색상을 추가해 주세요.
<?xml version="1.0" encoding="utf-8"?>
<resources>
...
<color name="common_text_color">#FFFFFF</color>
</resources>
위 XML 코드에서는 공용으로 사용할 color 객체를 정의하였습니다. name은 용도를 구별할 수 있게 적절한 이름을 설정해 주시면 되구요. #FFFFFF는 흰 색을 의미합니다.
(3) (2)에서 정의한 색상을 레이아웃 파일의 뷰에 적용하세요.
<TextView
...
android:textColor="@color/common_text_color"
... />
색상 리소스 적용 후 색상 변경
이후 색상 변경이 필요하면 앞에서 정의한 colors.xml 파일의 color 객체의 색상만 변경해 주면 됩니다. 1곳에서만 수정하면 되므로 변경 작업이 훨씬 더 빨리 됩니다.
지난 안드로이드 개발 팁
- #12 - 코틀린 언어 변환시 추가로 수정할 build.gradle 파일들
- #11 - 리스트/배열로부터 찾을 원소의 위치 읽기
- #10 - 앱의 다크 모드 진입 막는 방법
- #9 - 데이터 바인딩/뷰 바인딩 사용하지 않을 경우 자체적으로 만드는 Views 클래스
- #8 - TextView에 linear gradient color 적용하기
- #7 - 다이얼 화면 연결하기 위해 Activity 클래스의 확장 메소드 작성
- #6 - 웹 브라우저를 여는 확장 메소드 작성
- #5 - HTML 적용된 TextView에서 링크 클릭은 어떻게 구현?
- #4 - RxJava의 Observable, Single 객체의 기본 설정 수행 메소드 정의하기
- #3 - 특정 화면 이동시 다른 화면 모두 닫기
- #2 - HTML 이스케이핑 적용된 문자 풀어주기
- #1 - TextView로 HTML 내용 보여주기
[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.
Upvoted! Thank you for supporting witness @jswit.