TimePicker의 스피너 모드에서 텍스트와 구분선의 색상을 변경해보겠다.
1. 테마 선언
TimePicker을 xml 내에서 바로 색상변경이 불가능하다.
그래서 theme으로 스타일을 지정해준 뒤 사용을 해야한다.
<!-- TimePicker 색상 변경 -->
<style name="Theme.AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_500</item>
<item name="colorPrimaryVariant">@color/purple_700</item>
<item name="colorOnPrimary">@color/white</item>
</style>
<style name="ThemeOverlay.NumberPicker" parent="Theme.AppTheme">
<!-- NumberPicker divider color -->
<item name="colorControlNormal">#58CCFF</item>
<item name="android:textColorPrimary">#58CCFF</item>
</style>
res/values/themes/themes.xml 파일에 style을 추가해준다.
colorControlNormal, textColorPrimary에 원하는 색상코드를 넣어주면 된다.
2. theme 적용
<TimePicker
android:id="@+id/timepicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:timePickerMode="spinner"
android:theme="@style/ThemeOverlay.NumberPicker"/>
TimePicker에 theme을 추가하여 style을 적용해준다.
3. 결과
잘 적용된 것을 확인할 수 있다.
themes.xml 에 style을 적용해서 TimePicker에 색상을 적용시켜보았다.
왜 TimePicker에서 직접 색상을 적용할 수 있도록 지원을 안하는걸까?
'개발 > Android' 카테고리의 다른 글
[Android] MVVM 패턴이란? (+AAC) (0) | 2022.01.29 |
---|---|
[Android] API KEY 관리 (0) | 2021.12.24 |
[Android] 이미지 색상 코드 찾기 (0) | 2021.12.20 |