การสร้าง Style เบื้องต้น (สังเกตุสีที่มาร์คไว้ให้เอานะ)
/res/values/styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="GreenText" parent="TextAppearance.AppCompat">
<item name="android:textColor">#00FF00</item>
</style>
</resources>
นำมาใช้กับ View (TextView)
/res/layout/activity_main.xml
<TextView
android:id="@+id/greenText"
style="@style/GreenText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"/>
Theme ของ App
( สังเกตุ Default Theme ที่เราใช้จะอยู่ใน AndroidManifests.xml )
<application android:theme="@style/AppTheme"> // ถูกเรียกใช้จาก /res/values/styles.xml
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
..
..
..
เราสามารถนำค่าสีมาใช้กับ View ใน Layout ต่อไป เช่น android:textColor="@color/colorPrimary"
ลำไปอีกขั้นกับการหนด style แบบเจาะจง
เวอร์ชั่น (API) ของมือถือ
res/values/styles.xml # themes for all versions
res/values-v21/styles.xml # themes for API level 21+ only
example : res/values-v21/styles.xml
<!-- extend the base theme to add styles available only with API level 21+ -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:windowActivityTransitions">true</item>
<item name="android:windowEnterTransition">@android:transition/slide_right</item>
<item name="android:windowExitTransition">@android:transition/slide_left</item>
</style>
ลองสร้าง Style ให้ TextView
<style name="GreenText" parent="TextAppearance.AppCompat">
<item name="android:textColor">#77d</item>
</style>
นำไปใช้ใน Activity
greenText.setOnClickListener {
val intent = Intent(this@MainActivity, TwoActivity::class.java)
startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(this@MainActivity).toBundle())
}
เสร็จแล้วเราลองคลิกที่ Text จะเห็นความเปลี่ยนแปลงของ Animation
ตอน เปิด/ปิด Activity ใหม่ (สามารถใช้กับ Fragment ได้ด้วย)
Customize button style.
<Button
style="@style/Widget.AppCompat.Button.Borderless"
android:background="@color/colorPrimary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CustomButtonStyle"/>
source : https://developer.android.com/guide/topics/ui/look-and-feel/themes