티스토리 뷰
반응형
SMALL
[ attrs.xml ]
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="bgColor" format="color"/>
<attr name="titletextColor" format="color"/>
<attr name="subtitletextColor" format="color"/>
</resources>
[ styles.xml ]
<style name="LightTheme" parent="AppTheme">
<item name="titletextColor">#000000</item>
<item name="subtitletextColor">#606060</item>
<item name="bgColor">#ffffff</item>
</style>
<style name="DarkTheme" parent="AppTheme">
<item name="titletextColor">#ffffff</item>
<item name="subtitletextColor">#aeaeae</item>
<item name="bgColor">#000000</item>
</style>
반응형
테마를 입혀줄 XML 지정.
[ activity_main.xml ]
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
..
..
android:background="?attr/bgColor"> // 변경할 곳에 attr 속성 적용.
<TextView
..
..
android:textColor="?attr/titletextColor"/>
<TextView
..
..
android:textColor="?attr/subtitletextColor"/>
</androidx.constraintlayout.widget.ConstraintLayout>
[ MainActivity.kt ]
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_YES) {
setTheme(R.style.DarkTheme)
} else {
setTheme(R.style.LightTheme)
}
setContentView(R.layout.activity_main)
(임의의 View).setOnClickListener {
// AppCompatDelegate.MODE_NIGHT_NO : 앱의 기본 테마를 설정하고 res/values 디렉토리에 정의 된 색상을 사용합니다. 주로 밝은 테마에서 사용.
// AppCompatDelegate.MODE_NIGHT_YES : 앱의 야간 테마를 설정하고 res/values-night 디렉토리에 정의 된 색상을 사용합니다. 주로 어두운 테마에서 사용.
// AppCompatDelegate.MODE_NIGHT_AUTO : values 및 values-night 정의한 색상 ( values-night 디렉토리)에 따라 앱의 색상을 자동으로 전환합니다.
if (AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_YES) {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
} else {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
}
finish()
startActivity(Intent(this@MainActivity, this@MainActivity.javaClass)) // MainActivity Restart
}
}
반응형
LIST
'Android > Layout' 카테고리의 다른 글
[ Layout #3 ] ConstraintLayout BaseLine ( TextView 라인 맞추기 ) (0) | 2020.01.07 |
---|
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- widget 만들기
- Fragment data
- 역시 키크론이네
- 안드로이드 폴드 대응
- wear os
- widget 이미지 로딩
- 쏘렌토 하이브리드
- 폴더블 상태 유지
- 맥 전용
- Dot indicator
- 웨어러블
- flutter web
- 프래그먼트 데이터 저장
- widget glide
- Android Wear Os
- 폰과 워치 페어링
- 가중치랜덤
- 폴더블 이벤트 받기
- Android
- widget onreceive
- android widget 만들기
- 랜덤컬러
- RandomColor
- Foldable Event
- 갤럭시 워치
- widget onupdate
- 쏘렌토 하이브리드 시그니처
- 풀배열 키보드
- aos img url bitmap
- 안드로이드 플립 대응
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함