Android resursi un internacionalizācija

pamata rokasgrāmata-programmēšana-android-5

L nozīmē tie ir būtiska Android lietojumprogrammas sastāvdaļa. Kad vien iespējams mēs tos atdalīsim no kodaTādā veidā mēs sasniegsim uzturamāku lietojumprogrammu. Ja mēs tos labi organizēsim, Android rūpēsies arī par mums piemērotā elementa izvēli atkarībā no konfigurācijas - parasti, ekrāna lieluma un lietotāja valodas.

Pamata resursi: attēli un teksti

L teksti tie vienmēr jāatdala no koda. Ja mēs to nedarīsim, koda uzturēšana izmaksās dārgāk: mums būs jāpārskata visi gadījumi, un mēs katru reizi varam aizmirst dažus gadījumus, kad jāveic izmaiņas. Vissliktākais ir tas, ka tad mūsu lietojumprogramma nebūs internacionalizējama.

Tāpēc kodā nav ieteicams ievietot tekstus. Vienīgais izņēmums varētu būt ziņojumi, kas nav paredzēti galalietotājam, piemēram, konsoles izvades ziņojumi. Bet kopumā visiem mūsu tekstiem būs jāiet uz a atsevišķs resursu fails. Mēs sauksim šo failu virknes.xml, un jūsu pilnais ceļš projekta ietvaros būs res / values ​​/ strings.xml.

Strings.xml faila saturs būs līdzīgs šim:

<resursi>rinda nosaukums = "virkne_1">teksts_1
    <rinda nosaukums = "virkne_2">teksts_2

Tagad mūsu kodā mēs varam izgūt šos tekstus ar tādiem teikumiem kā getResources (). GetString (R.string.string_1) vai izkārtojumos, piemēram, @ string / string_1. Tādā veidā mēs esam sasnieguši vēlamo: kods kļūst neatkarīgs no resursiem.

Otrs resurss, ko mēs regulāri izmantosim, būs tēlainība. Tam mums projektā ir vairākas mapes, piemēram, res / drawable, res / drawable-hdpi, res / drawable-xhdpi un tamlīdzīgi.

Virsraksti, kas seko "zīmējamam", attiecas uz ekrāna blīvums. Katrai Android ierīcei ir pikseļu blīvums ekrānā, kas ir sagrupēts vairākās grupās:

  • ldpi (mazs, x0,75)
  • MPD (vidējais x1)
  • hdpi (liels x 1,5)
  • xhdpi (īpaši liels x2)
  • xxhdpi (īpaši īpaši liels x3)

Tādā veidā to pašu attēlu var pielāgot atšķirīgs ekrāna blīvums bez deformācijas parādīšanās. Katrā mapē ieteicams ievietot attēla kopiju, ievērojot proporcijas (par pamatu ņemot MPD un vienādu ar 1), lai gan jūs varat arī izmantot tikai vienu no tām, un pēc tam Android automātiski veiks mērogošanas darbību citas rezolūcijas. Tomēr ieteicams aptvert visas mapes, lai saglabātu sistēmu šīs papildu pūles.

"Drawable" mapē nebūs attēlu, mēs to izmantosim tikai uzlaboto elementu, piemēram, atlasītāju, xml definīcijām.

Citi resursi

Projekta direktorijā / res var izmantot daudz vairāk resursu. Skaņas, krāsu definīcijas, kas izmantojamas līdzīgi tekstiem, mūsu lietojuma izmēri, mūsu uzskatu stili un daudz kas cits.

Tiem, kurus interesē uzzināt vairāk par šiem resursiem, varat konsultēties oficiālo Android dokumentāciju.

Internacionalizācija Android ierīcēs

Ar attēliem mēs jau esam ievadījuši alternatīvo resursu sistēma Android ierīcēs: Ja mums ir xhdpi blīvuma ekrāns (piemēram, Galaxy S3 ekrāns), Android priekšroku dod attēliem direktorijā drawable-xhdpi, nevis citiem.

Šo sistēmu var izmantot, lai atšķirtu daudzas citas konfigurācijas: normālu vai ainavas orientāciju, braukšanas vai normālu režīmu, nakts vai normālu režīmu ... Atkal, mēs iesakām oficiālo Android dokumentāciju zināt visas detaļas. Mēs jau runājām par to, kā nodrošināt attēlus atbilstoši ekrāna blīvumam, tagad mēs koncentrēsimies uz vēl vienu ļoti svarīgu mūsu lietojuma veidu: internacionalizācija.

Ja mēs vēlamies, lai mūsu teksti būtu pieejami vairākās valodās, katrai faila strings.xml kopijai būs jāpievieno atšķirīga mape. Tādējādi, ja mēs vēlamies pārnest savu pieteikumu uz angļu un franču valodu, mums būtu šie trīs direktoriji:

  • res / vērtības (noklusējuma vērtības)
  • res / values-lv
  • rez / vērtības-fr

Tas ir, mapei tiek pievienots sufikss ar konkrētās valodas ISO kodu, un noklusējuma tekstus mēs atstāsim mapē bez sufiksa. Pēdējais ir ļoti svarīgs, jo, izņemot ekrāna blīvumu, mums vienmēr ir jānorāda noklusējuma vērtība visiem resursiem. Kad mums būs vajadzīgs jebkura veida resurss, Android meklēs vispiemērotāko resursu, un, ja to neatradīs, mēs varam atrast negaidītas lietojumprogrammas slēgšanas. Tāpēc vienmēr ir jābūt valodai, kuru mēs izvēlamies pēc noklusējuma un kurai visiem resursiem ir noklusējuma vērtība.

Tādā veidā mēs atkal iegūstam to, ko vēlējāmies: papildus tekstu atdalīšanai no koda tagad mēs varam iegūt arī pieteikums dažādās valodās vispār nepieskaroties mūsu kodam.

Alternatīvo resursu ģenerēšanas sistēma, protams, ir apvienojama. Sekojot saitei, kuru mēs jau norādījām iepriekš, mēs redzēsim, kādā secībā jāiet sufiksiem. Ja mēs sekosim vienkāršam piemēram, ko norādām šajā apmācībā, mēs varētu domāt par tādu attēlu izmantošanu, kas paredzēti tikai angļu valodas versijai. To panāk, izveidojot mapi res / drawable-en-xhdpi vai jebkuru citu mums nepieciešamo ekrāna blīvumu. Tādā veidā mēs varam nodrošināt visdažādākos resursus, un mums nav jāuztraucas par pareizā izvēli. Protams: neaizmirstot, ka ekrāna blīvums ir vienīgais modifikators, kuram nav nepieciešamas noklusējuma vērtības. Visiem pārējiem ir nepieciešama noklusējuma vērtība, vai arī mēs riskējam, ka lietojumprogramma avarē.


Jūs interesē:
Kā noņemt vīrusus operētājsistēmā Android
Sekojiet mums pakalpojumā Google ziņas

Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgs par datiem: Actualidad emuārs
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.