Kuinka sisällyttää tumma teema Android-sovellukseen

Kehittäjille Android-sovelluksen luominen on helppo prosessi - houkuttelevan käyttöliittymän suunnittelu on todella vaikeaa. Siksi kirjoitimme oppaan “Kuinka suunnitella Android-sovelluksen käyttöliittymä, joka ei ime”, kehittäjille, jotka tarvitsevat inspiraatiota yksinkertaisten, mutta houkuttelevien käyttöliittymien luomisessa. Tässä oppaassa mainitsimme lyhyesti tumman / yötilan teeman lisäämisen sovellukseesi, ja oppaassa opastamme sinut sen läpi.

Pimeän / yötilan teeman lisääminen sovellukseesi voi olla hieno vaihtoehto käyttäjille - se säästää akkua ja on paljon helpompaa silmissä yöllä. Valkoinen tausta mustalla tekstillä tai mikä tahansa yhdistelmä ”kirkkaita” värejä käyttöliittymässäsi on todella stressaavaa silmille, etenkin yöllä. Näin ollen vaaleammalla tekstillä oleva tumma tausta on paljon vähemmän stressaavaa ja haitallista silmille, minkä vuoksi monet suositut sovellukset ovat viime aikoina alkaneet sisällyttää tumman teeman - YouTube ja Reddit -, vaikka Facebook ei ole vieläkään julkaissut omaansa lupauttuaan takaisin Saattaa.

Jos haluat lisätä helposti vaihdettavan tumman tilan Android-sovellukseesi, seuraa tätä Appuals-opasta ja kommentoi, jos sinulla on ongelmia!

XML-määritteiden luominen

Ensin on luotava XML-määrätiedosto, joka käsittelee niitä. Tämä on paljon parempaa kuin sisällyttää APK: een kaksi resurssijoukkoa kahdelle eri teemalle ja siten paisuttaa APK-kokoasi, koska Android voi muuttaa alkuperäisissä ominaisuuksissa värejä luonnollisesti tämän XML: n kautta.

Joten luo sovelluksesi 'resurssit' -kansioon tiedosto nimeltä attrs.xml ja lisää nämä rivit ( nämä ovat tyylikkäitä määritteitä):

Ennen Lollipopia emme pystyneet määrittelemään piirrettävien ominaisuuksien määritteitä, joten jouduimme määrittämään piirrettävien resurssien tunnukset - tämä ei kuitenkaan ole enää tilanne.

Tyylien lisääminen

Tämän työn tekemiseksi meidän on luotava kaksi erillistä tyyliä, joilla on sama perusta. Ensimmäinen on tietysti ensisijainen 'kevyt' teemasi, ja toinen on 'tumma' teemasi.

 # F4F4F6 # 96F4F4F6 #FFFF # F2F2F3 @ piirrettävä / i_light_plholder # 33343B / item> # 8033343B # 28292e # F2F2F3 @ piirrettävä / i_dark_folder 

Tässä ovat tietyn toiminnan todelliset tyylit:

 # F4F4F6 # 33343B 

Sinun on määritettävä yksi näistä teemoista sovelluksen toiminnan manifestiksi, joka tässä tapauksessa on FeedActivity.

Näkemysten tyylitys

Tässä on esimerkki näkymien tyylistämisestä - tässä esimerkissä se on tarkoitettu sivua ei löydy -ohjausvirheelle.

Kuinka ottaa käyttöön dynaaminen teemavaihto

Paras ja tehokkain tapa aktivoida dynaaminen teemanvaihto on ladata SharedPreference -arvo, jota käytetään tallentamaan asetus sovellusinstituutiolle Singleton-mallin avulla, mikä tarkoittaa, että meidän ei tarvitse tehdä sitä kunkin toiminnon alussa.

 julkisen luokan sovellus laajentaa sovellusta {julkinen staattinen lopullinen merkkijono TAG = "sovellus"; yksityinen boolean isNightModeEnabled = false; @Ylitä julkinen tyhjä onCreate () {super.onCreate (); // Lataamme Night Mode -tilan tähän SharedPreferences mPrefs = PreferenceManager.getDefaultSharedPreferences (tämä); this.isNightModeEnabled = mPrefs.getBoolean (“NIGHT_MODE”, väärä); } julkinen boolean isNightModeEnabled () {return isNightModeEnabled; } public void setIsNightModeEnabled (boolean isNightModeEnabled) {this.isNightModeEnabled = isNightModeEnabled; }} 

Koska tämä ilmentymä on käynnistetty ennen kaikkea muuta, sen avulla voit soittaa isNightModeEnabled () Boolean -sovellukselle milloin tahansa, sovellukseen kuuluvissa toiminnoissa, kun se on avattu.

 julkinen lopullinen luokka FeedActivity laajentaa AppCompatActivity {yksityinen lopullinen staattinen merkkijono TAG = “FeedActivity”; @Suojattu tyhjä onCreate (Bundle savedInstanceState) {if (MyApplication.getInstance (). IsNightModeEnabled ()) {setTheme (R.style.FeedActivityThemeDark); } super.onCreate (SaveInstanceState); setContentView (R.layout.activity_feed); }} 

Jos haluat kuitenkin käyttää jotakin muuta kuin manifestitiedostossa määritettyä teemaa, se on tehtävä ennen kuin kutsua vanhempaa onCreate () -menetelmään.

Tilan asettaminen AppCompatia käyttämällä

AppCompat on todella hyödyllinen monissa asioissa, ja tässä tapauksessa käytämme sitä tilan tilan asettamiseen. Tämä tarkoittaa, että sinun ei enää tarvitse käyttää sovellusilmentöä välimuistitilan luomiseen, mikä vähentää sovelluksen välimuistin paisumista ( tosin hyvin pienellä marginaalilla ).

 AppCompatDelegate .setDefaultNightMode (AppCompatDelegate.MODE_NIGHT_YES); 

Tässä voit käyttää joko:

  • AppCompatDelegate.MODE_NIGHT_YES

    AppCompatDelegate.MODE_NIGHT_NO

    AppCompatDelegate.MODE_NIGHT_AUTO

Valtion hakeminen

 AppCompatDelegate.getDefaultNightMode (); julkinen lopullinen luokka FeedActivity laajentaa AppCompatActivity {yksityinen lopullinen staattinen merkkijono TAG = “FeedActivity”; @Ohita suojattu tyhjä onCreate (Bundle savedInstanceState) {if (AppCompatDelegate.getDefaultNightMode () == AppCompatDelegate.MODE_NIGHT_YES) {setTheme (R.style.FeedActivityThemeDark); } super.onCreate (SaveInstanceState); setContentView (R.layout.activity_feed); }} 

Sen pitäisi olla se - voit jatkaa arvojen mukauttamista ja mukauttamista haluamallasi tavalla, mutta tämä opas on loistava johdanto aloittaessasi alkuperäisen tumman teeman sisällyttämisen Android-sovellukseen.

Mielenkiintoisia Artikkeleita