Tema Material
Tema Material adalah gaya antarmuka pengguna yang menentukan tampilan dan nuansa tampilan dan aktivitas yang dimulai dengan Android 5.0 (Lollipop). Tema Material dibangun ke dalam Android 5.0, sehingga digunakan oleh UI sistem serta oleh aplikasi. Tema Material bukan "tema" dalam arti opsi tampilan di seluruh sistem yang dapat dipilih pengguna secara dinamis dari menu pengaturan. Sebaliknya, Tema Material dapat dianggap sebagai sekumpulan gaya dasar bawaan terkait yang dapat Anda gunakan untuk menyesuaikan tampilan dan nuansa aplikasi Anda.
Android menyediakan tiga rasa Tema Material:
Theme.Material
– Versi gelap dari Tema Material; ini adalah rasa default di Android 5.0.Theme.Material.Light
– Versi ringan Tema Material.Theme.Material.Light.DarkActionBar
– Versi terang Tema Material, tetapi dengan bilah tindakan gelap.
Contoh rasa Tema Bahan ini ditampilkan di sini:
Anda dapat memperoleh dari Tema Material untuk membuat tema Anda sendiri, mengambil alih beberapa atau semua atribut warna. Misalnya, Anda dapat membuat tema yang berasal dari Theme.Material.Light
, tetapi mengambil alih warna bilah aplikasi agar sesuai dengan warna merek Anda. Anda juga dapat menata tampilan individual; misalnya, Anda dapat membuat gaya untuk CardView yang memiliki sudut yang lebih bulat dan menggunakan warna latar belakang yang lebih gelap.
Anda dapat menggunakan satu tema untuk seluruh aplikasi, atau Anda dapat menggunakan tema yang berbeda untuk layar (aktivitas) yang berbeda di aplikasi. Dalam cuplikan layar di atas, misalnya, satu aplikasi menggunakan tema yang berbeda untuk setiap aktivitas untuk menunjukkan skema warna bawaan. Tombol radio mengalihkan aplikasi ke aktivitas yang berbeda, dan, sebagai hasilnya, menampilkan tema yang berbeda.
Karena Tema Material hanya didukung di Android 5.0 dan yang lebih baru, Anda tidak dapat menggunakannya (atau tema kustom yang berasal dari Tema Materi) ke tema aplikasi Anda untuk berjalan di versi Android yang lebih lama. Namun, Anda dapat mengonfigurasi aplikasi untuk menggunakan Tema Material di perangkat Android 5.0 dan dengan anggun kembali ke tema sebelumnya saat berjalan pada versi Android yang lebih lama (lihat bagian Kompatibilitas di artikel ini untuk detailnya).
Persyaratan
Berikut ini diperlukan untuk menggunakan fitur Tema Material Android 5.0 baru di aplikasi berbasis Xamarin:
Xamarin.Android – Xamarin.Android 4.20 atau yang lebih baru harus diinstal dan dikonfigurasi dengan Visual Studio atau Visual Studio untuk Mac.
Android SDK – Android 5.0 (API 21) atau yang lebih baru harus diinstal melalui Android SDK Manager.
Java JDK 1.8 – JDK 1.7 dapat digunakan jika Anda secara khusus menargetkan API level 23 dan yang lebih lama. JDK 1.8 tersedia dari Oracle.
Untuk mempelajari cara mengonfigurasi proyek aplikasi Android 5.0, lihat Menyiapkan Proyek Android 5.0.
Menggunakan Tema Bawaan
Cara term mudah untuk menggunakan Tema Material adalah dengan mengonfigurasi aplikasi Anda untuk menggunakan tema bawaan tanpa penyesuaian. Jika Anda tidak ingin mengonfigurasi tema secara eksplisit, aplikasi Anda akan default ke Theme.Material
(tema gelap). Jika aplikasi Hanya memiliki satu aktivitas, Anda dapat mengonfigurasi tema di tingkat aktivitas. Jika aplikasi Anda memiliki beberapa aktivitas, Anda dapat mengonfigurasi tema di tingkat aplikasi sehingga menggunakan tema yang sama di semua aktivitas, atau Anda dapat menetapkan tema yang berbeda ke aktivitas yang berbeda. Bagian berikut menjelaskan cara mengonfigurasi tema di tingkat aplikasi dan di tingkat aktivitas.
Membuat Tema Aplikasi
Untuk mengonfigurasi seluruh aplikasi untuk menggunakan flavor Material Theme, atur android:theme
atribut node aplikasi di AndroidManifest.xml ke salah satu hal berikut:
@android:style/Theme.Material
- Tema gelap.@android:style/Theme.Material.Light
– Tema terang.@android:style/Theme.Material.Light.DarkActionBar
– Tema terang dengan bilah tindakan gelap.
Contoh berikut mengonfigurasi aplikasi MyApp untuk menggunakan tema cahaya:
<application android:label="MyApp"
android:theme="@android:style/Theme.Material.Light">
</application>
Secara bergantian, Anda dapat mengatur atribut aplikasi Theme
di AssemblyInfo.cs (atau Properties.cs). Contohnya:
[assembly: Application(Theme="@android:style/Theme.Material.Light")]
Ketika tema aplikasi diatur ke @android:style/Theme.Material.Light
, setiap aktivitas di MyApp akan ditampilkan menggunakan Theme.Material.Light
.
Membuat Tema Aktivitas
Untuk tema aktivitas, Anda menambahkan Theme
pengaturan ke [Activity]
atribut di atas deklarasi aktivitas Anda dan menetapkan Theme
ke rasa Tema Materi yang ingin Anda gunakan. Contoh berikut tema aktivitas dengan Theme.Material.Light
:
[Activity(Theme = "@android:style/Theme.Material.Light",
Label = "MyApp", MainLauncher = true, Icon = "@drawable/icon")]
Aktivitas lain dalam aplikasi ini akan menggunakan skema warna gelap default Theme.Material
(atau, jika dikonfigurasi, pengaturan tema aplikasi).
Menggunakan Tema Kustom
Anda dapat meningkatkan merek Anda dengan membuat tema kustom yang menata aplikasi Anda dengan warna merek Anda. Untuk membuat tema kustom, Anda menentukan gaya baru yang berasal dari rasa Tema Bahan bawaan, mengganti atribut warna yang ingin Anda ubah. Misalnya, Anda dapat menentukan tema kustom yang berasal dari Theme.Material.Light.DarkActionBar
dan mengubah warna latar belakang layar menjadi krege alih-alih putih.
Tema Material mengekspos atribut tata letak berikut untuk kustomisasi:
colorPrimary
– Warna bilah aplikasi.colorPrimaryDark
– Warna bilah status dan bilah aplikasi kontekstual; ini biasanya merupakan versi gelap daricolorPrimary
.colorAccent
– Warna kontrol UI seperti kotak centang, tombol radio, dan kotak teks edit.windowBackground
– Warna latar belakang layar.textColorPrimary
– Warna teks UI di bilah aplikasi.statusBarColor
– Warna bilah status.navigationBarColor
– Warna bilah navigasi.
Area layar ini diberi label dalam diagram berikut:
Secara default, statusBarColor
diatur ke nilai colorPrimaryDark
. Anda dapat mengatur statusBarColor
ke warna solid, atau Anda dapat mengaturnya ke @android:color/transparent
untuk membuat bilah status transparan. Bilah navigasi juga dapat dibuat transparan dengan mengatur navigationBarColor
ke @android:color/transparent
.
Membuat Tema Aplikasi Kustom
Anda dapat membuat tema aplikasi kustom dengan membuat dan memodifikasi file di folder Sumber Daya proyek aplikasi Anda. Untuk menata aplikasi Anda dengan tema kustom, gunakan langkah-langkah berikut:
- Buat file colors.xml di Sumber Daya/nilai — Anda menggunakan file ini untuk menentukan warna tema kustom Anda. Misalnya, Anda dapat menempelkan kode berikut ke colors.xml untuk membantu Anda memulai:
<?xml version="1.0" encoding="UTF-8" ?>
<resources>
<color name="my_blue">#3498DB</color>
<color name="my_green">#77D065</color>
<color name="my_purple">#B455B6</color>
<color name="my_gray">#738182</color>
</resources>
Ubah file contoh ini untuk menentukan nama dan kode warna untuk sumber daya warna yang akan Anda gunakan dalam tema kustom Anda.
Buat folder Resources/values-v21 . Di folder ini, buat file styles.xml :
Perhatikan bahwa Resources/values-v21 khusus untuk Android 5.0 – versi Android yang lebih lama tidak akan membaca file di folder ini.
Tambahkan simpul
resources
untuk styles.xml dan tentukan simpulstyle
dengan nama tema kustom Anda. Misalnya, berikut adalah file styles.xml yang mendefinisikan MyCustomTheme (berasal dari gaya tema bawaanTheme.Material.Light
):
<?xml version="1.0" encoding="UTF-8" ?>
<resources>
<!-- Inherit from the light Material Theme -->
<style name="MyCustomTheme" parent="android:Theme.Material.Light">
<!-- Customizations go here -->
</style>
</resources>
Pada titik ini, aplikasi yang menggunakan MyCustomTheme akan menampilkan tema stok
Theme.Material.Light
tanpa penyesuaian:Tambahkan kustomisasi warna ke styles.xml dengan menentukan warna atribut tata letak yang ingin Anda ubah. Misalnya, untuk mengubah warna bilah aplikasi menjadi
my_blue
dan mengubah warna kontrol UI menjadimy_purple
, tambahkan penimpaan warna ke styles.xml yang merujuk ke sumber daya warna yang dikonfigurasi dalam colors.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<resources>
<!-- Inherit from the light Material Theme -->
<style name="MyCustomTheme" parent="android:Theme.Material.Light">
<!-- Override the app bar color -->
<item name="android:colorPrimary">@color/my_blue</item>
<!-- Override the color of UI controls -->
<item name="android:colorAccent">@color/my_purple</item>
</style>
</resources>
Dengan perubahan ini di tempat, aplikasi yang menggunakan MyCustomTheme akan menampilkan warna bilah aplikasi di my_blue
dan kontrol UI di , tetapi menggunakan Theme.Material.Light
skema warna di my_purple
tempat lain:
Dalam contoh ini, MyCustomTheme meminjam warna dari Theme.Material.Light
untuk warna latar belakang, bilah status, dan warna teks, tetapi mengubah warna bilah aplikasi menjadi my_blue
dan mengatur warna tombol radio menjadi my_purple
.
Membuat Gaya Tampilan Kustom
Android 5.0 juga memungkinkan Anda untuk menata tampilan individual. Setelah membuat colors.xml dan styles.xml (seperti yang dijelaskan di bagian sebelumnya), Anda bisa menambahkan gaya tampilan ke styles.xml. Untuk menata tampilan individual, gunakan langkah-langkah berikut:
- Edit Sumber Daya/nilai-v21/styles.xml dan tambahkan simpul
style
dengan nama gaya tampilan kustom Anda. Atur atribut warna kustom untuk tampilan Anda dalam simpul inistyle
. Misalnya, untuk membuat gaya CardView kustom yang memiliki lebih banyak sudut bulat dan digunakanmy_blue
sebagai warna latar belakang kartu, tambahkan nodestyle
ke styles.xml (di dalamresources
simpul) dan konfigurasikan warna latar belakang dan radius sudut:
<!-- Theme an individual view: -->
<style name="CardView.MyBlue">
<!-- Change the background color to Xamarin blue: -->
<item name="cardBackgroundColor">@color/my_blue</item>
<!-- Make the corners very round: -->
<item name="cardCornerRadius">18dp</item>
</style>
- Di tata letak Anda, atur atribut untuk tampilan tersebut
style
agar sesuai dengan nama gaya kustom yang Anda pilih di langkah sebelumnya. Contohnya:
<android.support.v7.widget.CardView
style="@style/CardView.MyBlue"
android:layout_width="200dp"
android:layout_height="100dp"
android:layout_gravity="center_horizontal">
Cuplikan layar berikut memberikan contoh default CardView
(ditampilkan di sebelah kiri) dibandingkan dengan CardView
yang telah ditata dengan tema kustom CardView.MyBlue
(ditampilkan di sebelah kanan):
Dalam contoh ini, kustom CardView
ditampilkan dengan warna my_blue
latar belakang dan radius sudut 18dp.
Kompatibilitas
Untuk menata aplikasi Anda sehingga menggunakan Tema Material di Android 5.0 tetapi secara otomatis kembali ke gaya yang kompatibel ke bawah pada versi Android yang lebih lama, gunakan langkah-langkah berikut:
- Tentukan tema kustom dalam Resources/values-v21/styles.xml yang berasal dari gaya Material Theme. Contohnya:
<resources>
<style name="MyCustomTheme" parent="android:Theme.Material.Light">
<!-- Your customizations go here -->
</style>
</resources>
- Tentukan tema kustom di Sumber Daya/nilai/styles.xml yang berasal dari tema yang lebih lama, tetapi menggunakan nama tema yang sama seperti di atas. Contohnya:
<resources>
<style name="MyCustomTheme" parent="android:Theme.Holo.Light">
<!-- Your customizations go here -->
</style>
</resources>
- Di AndroidManifest.xml, konfigurasikan aplikasi Anda dengan nama tema kustom. Contohnya:
<application android:label="MyApp"
android:theme="@style/MyCustomTheme">
</application>
- Secara bergantian, Anda dapat menata aktivitas tertentu menggunakan tema kustom Anda:
[Activity(Label = "MyActivity", Theme = "@style/MyCustomTheme")]
Jika tema Anda menggunakan warna yang ditentukan dalam file colors.xml , pastikan untuk menempatkan file ini di Sumber Daya/nilai (bukan Sumber Daya/nilai-v21) sehingga kedua versi tema kustom Anda dapat mengakses definisi warna Anda.
Saat aplikasi Anda berjalan di perangkat Android 5.0, aplikasi akan menggunakan definisi tema yang ditentukan dalam Resources/values-v21/styles.xml. Ketika aplikasi ini berjalan pada perangkat Android yang lebih lama, aplikasi akan secara otomatis kembali ke definisi tema yang ditentukan dalam Sumber Daya/nilai/styles.xml.
Untuk informasi selengkapnya tentang kompatibilitas tema dengan versi Android yang lebih lama, lihat Sumber Daya Alternatif.
Ringkasan
Artikel ini memperkenalkan gaya antarmuka pengguna Material Theme baru yang disertakan dalam Android 5.0 (Lollipop). Ini menjelaskan tiga rasa Tema Bahan bawaan yang dapat Anda gunakan untuk menata aplikasi Anda, menjelaskan cara membuat tema kustom untuk mencitrakan aplikasi Anda, dan memberikan contoh cara membuat tema tampilan individual. Terakhir, artikel ini menjelaskan cara menggunakan Tema Material di aplikasi Anda sambil mempertahankan kompatibilitas ke bawah dengan versi Android yang lebih lama.