Tumeda teema kaasamine oma Androidi rakendusse

Arendajatele on Androidi rakenduse loomine lihtne protsess - ahvatleva kasutajaliidese kujundamine on tegelikult keeruline. Seetõttu kirjutasime juhendi „Kuidas kujundada Androidi rakenduse kasutajaliides, mis ei ime“ arendajatele, kes vajavad lihtsate, kuid samas ahvatlevate kasutajaliideste loomisel pisut inspiratsiooni. Selles juhendis mainisime lühidalt pimeda / öö režiimi teema lisamist teie rakendustele ja selles juhendis juhendame teid sellest.

Pimedas / öörežiimis teema lisamine oma rakendusele võib olla teie kasutajatele suurepärane võimalus - see säästab akut ja on öösel silmadega palju hõlpsam. Valge taust mustas tekstis või kasutajaliidese mis tahes "erksate" värvide kombinatsioon on silmadele tõeliselt stressirohke, eriti öösel. Seega on heledama tekstiga tume taust silmade jaoks vähem stressi tekitav ja kahjulik, mistõttu on paljud populaarsed rakendused hakanud hõlmama ka tumedat teemat - YouTube ja Reddit -, kuigi Facebook pole ikka veel oma avaldanud, lubades ühe uuesti sisse Mai.

Kui soovite oma Androidi rakendusele hõlpsasti lülitatava pimeda režiimi lisada, siis järgige seda rakenduste juhendit ja kommenteerige, kui teil on probleeme!

XML-atribuutide loomine

Esmalt peate looma XML-i atribuutide faili, mis haldab neid. See on palju parem, kui kaasata APK-sse kaks ressursside komplekti kahe erineva teema jaoks ja seega puhuda teie APK-i suurus, kuna Android võib selle XML-i kaudu atribuutide värve loomulikult muuta.

Nii et looge rakenduse kausta ressursid kausta fail nimega attrs.xml ja lisage need read ( need on stiilsed atribuudid):

Enne Lollipopit ei saanud me draiverite atribuute täpsustada, seega pidime määrama draiverite ressursi ID - kuid see pole enam nii.

Stiilide lisamine

Selle töö tegemiseks peame looma kaks eraldi stiili, millel on sama alus. Esimene on ilmselgelt teie peamine „kerge” teema ja teine ​​on teie „tume” teema.

 # F4F4F6 # 96F4F4F6 #FFFF # F2F2F3 @ joonistatav / i_light_plider # 33343B / element> # 8033343B # 28292e # F2F2F3 @ joonistatav / i_dark_pholder 

Siin on antud tegevuse tegelikud stiilid:

 # F4F4F6 # 33343B 

Rakenduse tegevuse manifestis peate määrama ühe neist teemadest, milleks sel juhul on FeedActivity.

Vaadete stiliseerimine

Siin on näide oma vaadete stiliseerimisest - selles näites on see ümbersuunamisvea jaoks „Lehte ei leitud“.

Kuidas dünaamilist teemavahetust lubada

Parim ja tõhusaim viis dünaamilise teemavahetuse lubamiseks on SharedPreference väärtuse laadimine, mida kasutatakse seadete salvestamiseks rakenduse eksemplarisse, kasutades Singletoni mustrit, mis tähendab, et me ei pea seda tegema iga tegevuse alguses.

 avaliku klassi rakendus laiendab rakendust {avalik staatiline lõplik String TAG = "rakendus"; privaatne tõeväärtus isNightModeEnabled = false; @Kuva üldsuse tühine onCreate () {super.onCreate (); // Laadime siin öörežiimi oleku SharedPreferences mPrefs = PreferenceManager.getDefaultSharedPreferences (see); this.isNightModeEnabled = mPrefs.getBoolean (“NIGHT_MODE”, vale); } avalik loogiline isNightModeEnabled () {return isNightModeEnabled; } public void setIsNightModeEnabled (loogiline isNightModeEnabled) {this.isNightModeEnabled = isNightModeEnabled; }} 

Kuna see eksemplar käivitatakse enne midagi muud, võimaldab see helistada isNightModeEnabled () Boolean'ile millal iganes soovite, rakenduse juurde kuuluvates toimingutes pärast selle avamist.

 avalik lõppklass FeedActivity laiendab AppCompatActivity {privaatset lõplikku staatilist stringi TAG = "FeedActivity"; @Ületage kaitstud tühisus onCreate (Bundle savedInstanceState) {if (MyApplication.getInstance (). IsNightModeEnabled ()) {setTheme (R.style.FeedActivityThemeDark); } super.onCreate (SaveInstanceState); setContentView (R.layout.activity_feed); }} 

Kui soovite aga rakendada manifesti failist erinevat teemat, tuleb seda teha enne vanemale onCreate () meetodi kutsumist.

Riigi seadistamine rakenduse AppCompat abil

AppCompat on tõesti kasulik paljude asjade jaoks ja sel juhul kasutame seda režiimi oleku seadmiseks. See tähendab, et te ei pea vahemälurežiimi loomiseks enam rakenduse eksemplari kasutama, vähendades sellega rakenduse vahemälu paisumist ( ehkki väga väikese veaga ).

 AppCompatDelegate .setDefaultNightMode (AppCompatDelegate.MODE_NIGHT_YES); 

Siin saate kasutada:

  • AppCompatDelegate.MODE_NIGHT_YES

    AppCompatDelegate.MODE_NIGHT_NO

    AppCompatDelegate.MODE_NIGHT_AUTO

Riigi taastamine

 AppCompatDelegate.getDefaultNightMode (); avalik lõppklass FeedActivity laiendab AppCompatActivity {privaatset lõplikku staatilist stringi TAG = "FeedActivity"; @Ületage kaitstud tühisus onCreate (Bundle savedInstanceState) {if (AppCompatDelegate.getDefaultNightMode () == AppCompatDelegate.MODE_NIGHT_YES) {setTheme (R.style.FeedActivityThemeDark); } super.onCreate (SaveInstanceState); setContentView (R.layout.activity_feed); }} 

See peakski nii olema - võite jätkata väärtuste kohandamist ja kohandamist oma maitse järgi, kuid see juhend on suurepärane sissejuhatus, mille abil saate oma loomuliku tumeda teema oma Android-rakendusse lisada.

Huvitavad Artiklid