android 전역 폰트 변경. kotlin

사용하는 테마 설정에 android:typeface 을 추가한다.
코드를 실행한다.
코드 실행후 현재 액티비티에 적용하려면 액티비티 리스타트를 해야 한다.

styles.xml


<style name="AppTheme" parent="Theme.AppCompat.DayNight.DarkActionBar">
    <item name="android:typeface">serif</item>
</style>


코드.


fun setFont(defaultFontNameToOverride: String, newFontFileNameInAssets: String): Boolean {
try {
val fontMaintext = Typeface.createFromAsset(context().assets, newFontFileNameInAssets)
val defaultFontTypefaceField: Field = Typeface::class.java.getDeclaredField(defaultFontNameToOverride)
defaultFontTypefaceField.setAccessible(true)
defaultFontTypefaceField.set(null, fontMaintext)
} catch (e: java.lang.Exception) {
return false
}

return true
}


액티비티 리스타트.


val intent: Intent = getIntent()
finish()
startActivity(intent)


댓글

이 블로그의 인기 게시물

파이썬 vscode에서 자동 코드 정렬. Formatter.

플러터(flutter) 개발 참고 사이트들.

Unity3D git 저장소에 올릴때 필요없는 파일 제외하기. gitignore