티스토리 뷰
반응형
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
- 프래그먼트 데이터 저장
- android widget 만들기
- widget 만들기
- 갤럭시 워치
- widget onreceive
- Android Wear Os
- 폴더블 상태 유지
- wear os
- aos img url bitmap
- 가중치랜덤
- flutter web
- 폰과 워치 페어링
- RandomColor
- widget 이미지 로딩
- Dot indicator
- widget glide
- 역시 키크론이네
- Android
- 맥 전용
- Fragment data
- widget onupdate
- 랜덤컬러
- 안드로이드 폴드 대응
- Foldable Event
- 폴더블 이벤트 받기
- 웨어러블
- 풀배열 키보드
- 쏘렌토 하이브리드 시그니처
- 쏘렌토 하이브리드
- 안드로이드 플립 대응
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함