Android - Theme Resources 主題樣式資源的定義與使用
位置:開啟 res/values
中的 themes.xml
,以及 res/values-night
的 themes.xml
:
內容:從範本建立專案時預設的 <style>
樣式資源。
res/values/themes.xml
:一般模式時套用的主題res/values-night/themes.xml
:Dark mode時套用的主體
res/values-night/themes.xml
的黑底配色主題樣式資源定義語法:同樣式資源
<style
name="主題樣式資源ID"
parent="@style/parent主題樣式資源ID">
<item name="屬性名稱1">屬性值1</item>
<item name="屬性名稱2">屬性值2</item>
...
</style>
themes.xml
內的預設樣式資源
<style name="Theme.MyApp" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_500</item>
<item name="colorPrimaryVariant">@color/purple_700</item>
<item name="colorOnPrimary">@color/white</item>
<!-- Secondary brand color. -->
<item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_700</item>
<item name="colorOnSecondary">@color/black</item>
<!-- Status bar color. -->
<item name="android:statusBarColor">?attr/colorPrimaryVariant</item>
</style>
app/manifests
的 AndroidManifest.xml
android:theme="@style/樣式資源ID"
,如:android:theme="@style/Theme.AppTheme"
<application
...
android:theme="@style/Theme.MyApp">
...
</application>
MainActivity.kt
setTheme(R.style.樣式資源ID)
,在程式setTheme(R.style.Theme_MyApp)
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
//======== 設定 Theme 資源 ========
setTheme(R.style.Theme_MyApp)
//================================
setContentView(R.layout.activity_main)
}
}