2022年3月7日 星期一

android studio:Style 和Theme

在做android studio專案時,可能會需要相同字體大小、外形、顏色等等的設定,以便使整個app有一致性,這些若要一個一個設定可能會花上大量的時間,因此可以透過設定Style 和Theme來統一android studio專案的屬性,如果要設定view的屬性,可以設定Style,而要同時設定layout或是整個專案的屬性,則使用Theme。以下是themes.xml裡的內容,首先以<resources></resources>首先 包起來,告知別人這是個可以引用的資源類型。

第二行是這個theme繼承至那一個parent的屬性,而name,這是它的引用名字。<item>的部份則是細項的內觀設定,那一個name,代表那一個屬性。可以在AndroidManifest.xml<application>中引用你設定的全局布局屬性,如:android:theme="@style/Theme.View",而如果只是要單獨的設定一個activity的布局屬性,同樣可以在AndroidManifest.xml中的<activity>中設定。

<style name="Theme.View" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.View" 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" tools:targetApi="l">?attr/colorPrimaryVariant</item>
<!-- Customize your theme here. -->
</style>
</resources>

而stytle使用的方法,跟上面的theme是差不多的,只是使用的對象不太相同。

在寫的過程中,發現有個網頁寫得非常仔細:https://xnfood.com.tw/style-theme/#declare_01

沒有留言:

張貼留言