„Android“ ištekliai ir internacionalizavimas

pagrindinis-vadovas-programavimas-android-5

Los ištekliai Jie yra pagrindinė „Android“ programos dalis. Kai tik įmanoma mes juos atskirsime nuo kodo, tokiu būdu pasieksime labiau prižiūrimą programą. Jei juos gerai sutvarkysime, „Android“ taip pat pasirūpins mums tinkamo elemento parinkimu, atsižvelgdama į konfigūraciją – paprastai ekrano dydį ir vartotojo kalbą.

Pagrindiniai ištekliai: vaizdai ir tekstai

Los tekstai Jie visada turi būti atskirti nuo kodo. Jei to nepadarysime, kodo priežiūra mums kainuos brangiau: turėtume peržiūrėti visus įvykius ir kiekvieną kartą, kai turėsime atlikti pakeitimus, galime ką nors pamiršti. Blogiausia, kad tada mūsų programa nebus internacionalizuojama.

Todėl nerekomenduojama dėti tekstų į kodą. Vienintelė išimtis gali būti pranešimai, kurie nėra skirti galutiniam vartotojui, pavyzdžiui, konsolės išvesties pranešimai. Bet apskritai visi mūsų tekstai turės eiti į a atskiras išteklių failas. Mes vadinsime tą failą eilutės.xml, o visas jo kelias projekte bus res/values/strings.xml.

Strings.xml failo turinys bus panašus į šį:

<ištekliai>eilutė vardas = "eilutė_1">tekstas_1
    <eilutė vardas = "eilutė_2">tekstas_2

Dabar savo kode galime gauti šiuos tekstus naudodami tokius teiginius kaip getResources().getString(R.string.string_1) arba savo maketuose, pvz., @string/string_1 . Tokiu būdu pasiekėme tai, ko norėjome: kodas tampa nepriklausomas nuo išteklių.

Kitas šaltinis, kurį paprastai naudosime, bus vaizdai. Norėdami tai padaryti, projekte turime kelis aplankus, tokius kaip res/drawable, res/drawable-hdpi, res/drawable-xhdpi ir panašiai.

Priesagos, einančios po „braižomas“, nurodo ekrano tankis. Kiekvienas „Android“ įrenginys turi pikselių tankį viename ekrane, kuris sugrupuotas į kelias grupes:

  • ldpi (mažas, x0,75)
  • mdpi (vidutiniškai x1)
  • hdpi (didelis x1,5)
  • xhdpi (ypač didelis x2)
  • xxhdpi (ypatingai didelis x3)

Tokiu būdu galima pritaikyti tą patį vaizdą skirtingas ekrano tankis be deformacijų atsiradimo. Rekomenduojama, kad kiekviename aplanke būtų vaizdo kopija, laikantis proporcijų (pagrindu imant mdpi ir lygų 1), nors taip pat galite naudoti tik vieną iš jų, tada Android automatiškai atliks mastelio keitimo operaciją. kitos rezoliucijos. Tačiau, norint sutaupyti sistemos papildomų pastangų, rekomenduojama uždengti visus aplankus.

Pačiame „braižomame“ aplanke vaizdų nebus, jį naudosime tik išplėstinių elementų, pvz., selektorių, xml apibrėžimams.

Kiti ištekliai

Daug daugiau išteklių gali patekti į projekto /res katalogą. Garsai, spalvų apibrėžimai, naudojami panašiai kaip tekstai, mūsų programos matmenys, mūsų vaizdų stiliai ir daug daugiau.

Visi, norintys sužinoti daugiau apie šiuos išteklius, gali pasikonsultuoti oficiali Android dokumentacija.

Internacionalizavimas „Android“.

Su vaizdais mes jau padarėme įvadą į alternatyvi išteklių sistema „Android“.: Jei turime xhdpi tankio ekraną (pavyzdžiui, „Galaxy S3“), „Android“ pirmenybę teiks vaizdams, esantiems braižomo xhdpi kataloge, o ne kitiems.

Šia sistema galima atskirti daugybę kitų konfigūracijų: įprastą arba kraštovaizdžio orientaciją, vairavimo ar normalų režimą, naktinį ar įprastą režimą... Vėlgi rekomenduojame oficiali Android dokumentacija žinoti visas smulkmenas. Jau kalbėjome apie tai, kaip pateikti vaizdus pagal ekrano tankį, dabar sutelksime dėmesį į kitą labai svarbų mūsų programos panaudojimą: internacionalizacija.

Jei norime, kad tekstai būtų prieinami keliomis kalbomis, kiekvienai strings.xml failo kopijai turėsime pridėti skirtingą aplanką. Tokiu būdu, jei norime perkelti programą į anglų ir prancūzų kalbas, turėtume šiuos tris katalogus:

  • res/values ​​(numatytosios reikšmės)
  • res/values-lt
  • res/values-fr

Tai yra, prie aplanko pridedama priesaga su konkrečios kalbos ISO kodu, o numatytuosius tekstus aplanke paliksime be galūnės. Pastarasis yra labai svarbus, nes išskyrus ekrano tankius, visada turime duoti a numatytoji vertė už visus išteklius. Kai mums reikia bet kokio tipo išteklių, „Android“ ieškos tinkamiausio, o jei neras, galime susidurti su netikėtais programų uždarymais. Štai kodėl visada turi būti kalba, kurią pasirenkame pagal numatytuosius nustatymus ir kad visi ištekliai turėtų numatytąją reikšmę.

Tokiu būdu mes vėl pasiekiame tai, ko norėjome: be tekstų atskyrimo nuo kodo, dabar galime turėti taikymas įvairiomis kalbomis visai neliesdami mūsų kodo.

Žinoma, alternatyvių išteklių generavimo sistema yra derinama. Vadovaudamiesi nuoroda, kurią nurodėme anksčiau, pamatysime, kokia tvarka turi būti pateikiamos priesagos. Jei vadovausimės paprastu pavyzdžiu, kurį nurodome šioje mokymo programoje, galėtume pagalvoti apie vaizdų, skirtų tik anglų kalbai, versiją. Tai pasiekiama sukuriant aplanką res/drawable-en-xhdpi arba bet kokį kitą mums reikalingą ekrano tankį. Tokiu būdu galime pasiūlyti daug įvairių išteklių ir nereikės nerimauti pasirenkant tinkamą. Žinoma: nepamirštant, kad ekrano tankis yra vienintelis modifikatorius, kuriam nereikia numatytųjų verčių. Visoms kitoms reikia numatytosios vertės arba rizikuojame, kad programa sustos.


Jus domina:
Kaip pašalinti virusus „Android“
Sekite mus „Google“ naujienose

Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: „Actualidad“ tinklaraštis
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.