Cara Memasukkan Tema Gelap di Aplikasi Android Anda

Bagi pengembang, membuat aplikasi Android adalah proses yang mudah - merancang UI yang menarik adalah hal yang sebenarnya sulit. Itulah sebabnya kami menulis panduan "Cara Merancang UI Aplikasi Android yang Tidak Mengisap", untuk pengembang yang membutuhkan inspirasi dalam membuat UI sederhana namun menarik. Dalam panduan itu kami secara singkat disebutkan menambahkan tema mode gelap / malam ke aplikasi Anda, dan dalam panduan ini kami akan memandu Anda melalui itu.

Menambahkan tema mode gelap / malam ke aplikasi Anda bisa menjadi pilihan yang bagus untuk pengguna Anda - menghemat masa pakai baterai, dan jauh lebih mudah di mata di malam hari. Latar belakang putih pada teks hitam, atau kombinasi warna 'cerah' di UI Anda, benar-benar membuat mata tertekan, terutama di malam hari. Dengan demikian, latar belakang gelap dengan teks yang lebih ringan jauh lebih tidak membuat stres dan berbahaya bagi mata, itulah sebabnya banyak aplikasi populer mulai memasukkan tema gelap - YouTube dan Reddit baru-baru ini, meskipun Facebook masih belum menerbitkannya setelah menjanjikan satu lagi di Mungkin.

Jika Anda ingin dengan mudah menambahkan mode gelap toggleable ke aplikasi Android Anda, ikuti panduan Appuals ini dan komentar jika Anda mengalami masalah!

Membuat Atribut XML

Pertama, Anda perlu membuat file atribut XML yang akan menangani tema. Ini jauh lebih baik daripada memasukkan dua set sumber daya di APK Anda untuk dua tema yang berbeda, dan karenanya menggembungkan ukuran APK Anda, karena Android dapat mengubah warna pada atribut melalui XML ini.

Jadi di folder 'sumber daya' aplikasi Anda, buat file bernama attrs.xml dan tambahkan baris ini ( ini adalah atribut gaya):

Sebelum ke Lollipop, kami tidak dapat menentukan atribut untuk drawables, jadi kami harus menentukan ID sumber daya untuk drawables - namun, ini tidak lagi menjadi masalah.

Menambahkan Gaya

Untuk membuat ini berfungsi, kita perlu membuat dua gaya terpisah yang akan berbagi basis yang sama. Yang pertama jelas akan menjadi tema 'terang' utama Anda, dan yang kedua akan menjadi tema 'gelap' Anda.

 # F4F4F6 # 96F4F4F6 #FFFF # F2F2F3 @ drawable / i_light_plholder # 33343B / item> # 8033343B # 28292e # F2F2F3 @ drawable / i_dark_pholder 

Berikut adalah gaya aktual untuk aktivitas tertentu:

 # F4F4F6 # 33343B 

Anda perlu menentukan salah satu tema ini ke dalam Manifest untuk aktivitas aplikasi, yang dalam hal ini adalah FeedActivity.

Menyesuaikan tampilan

Berikut adalah contoh menyesuaikan tampilan Anda - dalam contoh ini, untuk kesalahan pengalihan "Halaman tidak ditemukan".

Cara Mengaktifkan Pemindahan Tema Dinamis

Cara terbaik dan paling efisien untuk mengaktifkan pergantian tema dinamis adalah dengan memuat nilai SharedPreference yang digunakan untuk menyimpan pengaturan ke instance Aplikasi menggunakan pola Singleton, yang berarti kita tidak perlu melakukannya di awal setiap Kegiatan.

 Aplikasi kelas publik memperluas Aplikasi {public static final String TAG = "App"; private boolean isNightModeEnabled = false; @Override public void onCreate () {super.onCreate (); // Kami memuat status Mode Malam di sini SharedPreferences mPrefs = PreferenceManager.getDefaultSharedPreferences (ini); this.isNightModeEnabled = mPrefs.getBoolean ("NIGHT_MODE", false); } public boolean isNightModeEnabled () {return isNightModeEnabled; } public void setIsNightModeEnabled (boolean isNightModeEnabled) {this.isNightModeEnabled = isNightModeEnabled; }} 

Karena instance ini diluncurkan sebelum yang lain, ini memungkinkan Anda untuk memanggil isNightModeEnabled () Boolean kapan pun Anda inginkan, dalam aktivitas apa pun yang termasuk dalam aplikasi setelah dibuka.

 FeedActivity kelas akhir publik memperluas AppCompatActivity {private final static String TAG = “FeedActivity”; @Override void onCreate yang dilindungi (Bundle disimpanInstanceState) {if (MyApplication.getInstance (). IsNightModeEnabled ()) {setTheme (R.style.FeedActivityThemeDark); } super.onCreate (SavedInstanceState); setContentView (R.layout.activity_feed); }} 

Namun, jika Anda ingin menerapkan tema yang berbeda dari yang ditentukan dalam file manifes, itu harus dilakukan sebelum memanggil metode induk onCreate ().

Mengatur Status Menggunakan AppCompat

AppCompat sangat berguna untuk berbagai hal, dan dalam hal ini, kami akan menggunakannya untuk mengatur mode mode. Ini berarti bahwa Anda tidak perlu lagi menggunakan instance aplikasi untuk membuat keadaan cache, sehingga mengurangi cache aplikasi ( walaupun dengan margin yang sangat kecil ).

 AppCompatDelegate .setDefaultNightMode (AppCompatDelegate.MODE_NIGHT_YES); 

Di sini, Anda dapat menggunakan:

  • AppCompatDelegate.MODE_NIGHT_YES

    AppCompatDelegate.MODE_NIGHT_NO

    AppCompatDelegate.MODE_NIGHT_AUTO

Mengambil Negara

 AppCompatDelegate.getDefaultNightMode (); FeedActivity kelas akhir publik memperluas AppCompatActivity {private final static String TAG = “FeedActivity”; @Override void onCreate yang dilindungi (Bundel disimpanInstanceState) {if (AppCompatDelegate.getDefaultNightMode () == AppCompatDelegate.MODE_NIGHT_YES) {setTheme (R.style.FeedActivityThemeDark); } super.onCreate (SavedInstanceState); setContentView (R.layout.activity_feed); }} 

Seharusnya begitu - Anda dapat terus menyesuaikan dan mengubah nilai sesuai keinginan Anda, tetapi panduan ini merupakan pengantar yang bagus untuk Anda mulai dengan memasukkan tema gelap asli di aplikasi Android Anda.

Artikel Menarik