Android-ressourcer og internationalisering

grundlæggende-guide-programmering-android-5

masse midler de er en grundlæggende del af en Android-applikation. Når det er muligt vi adskiller dem fra kodenPå denne måde opnår vi en mere vedligeholdelig applikation. Hvis vi organiserer dem godt, sørger Android også for at vælge det rigtige element for os afhængigt af konfigurationen - typisk skærmstørrelse og brugerens sprog.

Grundlæggende ressourcer: billeder og tekster

masse tekster de skal altid være adskilt fra koden. Hvis vi ikke gør det, koster det os mere at vedligeholde koden: Vi bliver nødt til at gennemgå alle begivenheder, og vi kan glemme noget hver gang vi skal foretage ændringer. Det værste af alt er, at vores ansøgning ikke kan internationaliseres.

Derfor anbefales det ikke at sætte tekster i koden. Den eneste undtagelse kan være beskeder, der ikke er beregnet til slutbrugeren, såsom konsoludgangsbeskeder. Men generelt skal alle vores tekster gå til en separat ressourcefil. Vi kalder den fil strings.xml, og din fulde vej inden for projektet bliver res / værdier / strings.xml.

En strings.xml-fil vil have indhold svarende til dette:

<ressourcer>streng navn = "streng_1">tekst_1
    <streng navn = "streng_2">tekst_2

Nu kan vi i vores kode hente disse tekster med sætninger som getResources (). GetString (R.string.string_1) eller inden for vores layouts som @ string / string_1. På denne måde har vi opnået det, vi ønskede: koden bliver ressourceuafhængig.

Den anden ressource, som vi bruger regelmæssigt, er billedsprog. Til dette har vi flere mapper inden for projektet, såsom res / drawable, res / drawable-hdpi, res / drawable-xhdpi og lignende.

De suffikser, der følger "tegneserie", henviser til skærmtæthed. Hver Android-enhed har en pixeltæthed pr. Skærm, der er grupperet i flere grupper:

  • ldpi (lille, x0,75)
  • mdpi (gennemsnit x1)
  • hdpi (stor x1,5)
  • xhdpi (ekstra stor x2)
  • xxhdpi (ekstra ekstra stor x3)

På denne måde kan det samme billede tilpasses forskellige skærmtætheder uden at der opstår misdannelser. Det anbefales, at der i hver mappe er en kopi af billedet, der respekterer proportionerne (med mdpi som base og lig med 1), selvom du kun kan bruge kun en af ​​dem, og derefter foretager Android automatisk en omskalering andre beslutninger. Det anbefales dog at dække alle mapper for at gemme systemet denne ekstra indsats.

Mappen "tegnes" indeholder ikke billeder, vi bruger den kun til xml-definitioner af avancerede elementer, såsom vælgere.

Andre ressourcer

I projektets / res-bibliotek kan der gå mange flere ressourcer. Lyde, farvedefinitioner, der kan bruges på samme måde som tekster, dimensioner til vores applikation, stilarter til vores synspunkter og meget mere.

For dem, der er interesseret i at lære mere om disse ressourcer, kan du konsultere den officielle Android-dokumentation.

Internationalisering på Android

Med de billeder, vi allerede har introduceret til alternativt ressurssystem på Android: Hvis vi har en xhdpi-tæthedsskærm (for eksempel en Galaxy S3), foretrækker Android billederne i mappen drawable-xhdpi frem for de andre.

Dette system kan bruges til at skelne mellem mange andre konfigurationer: normal eller liggende retning, kørsel eller normal tilstand, nat eller normal tilstand ... Igen anbefaler vi den officielle Android-dokumentation at kende alle detaljerne. Vi har allerede talt om, hvordan man leverer billeder i henhold til skærmens tæthed, nu vil vi fokusere på en anden meget vigtig anvendelse til vores applikation: internationalisering.

Hvis vi ønsker, at vores tekster skal være tilgængelige på flere sprog, bliver vi nødt til at tilføje en anden mappe til hver kopi af strings.xml-filen. Således, hvis vi ønsker at overføre vores ansøgning til engelsk og fransk, ville vi have disse tre mapper:

  • res / værdier (standardværdier)
  • res / værdier-da
  • res / værdier-fr

Det vil sige, et suffiks med ISO-koden for det specifikke sprog føjes til mappen, og vi vil lade standardteksterne i mappen uden et suffiks. Sidstnævnte er meget vigtigt, for bortset fra skærmens densiteter er vi altid nødt til at give en standardværdi for alle ressourcer. Når vi har brug for en ressource af enhver art, vil Android se efter den, der passer bedst, og hvis den ikke finder nogen, kan vi finde uventede lukninger af applikationen. Derfor skal der altid være et sprog, som vi vælger som standard, og at alle ressourcer har deres standardværdi.

På denne måde får vi det, vi ønskede igen: Ud over at have adskilt teksterne fra koden, kan vi nu have applikation på forskellige sprog uden at røre vores kode overhovedet.

Systemet til generering af alternative ressourcer kan naturligvis kombineres. Efter det link, vi tidligere har angivet, vil vi se i hvilken rækkefølge suffikserne skal gå. Hvis vi følger det enkle eksempel, som vi angiver i denne vejledning, kunne vi tænke på at have billeder, der kun er til den engelske version. Dette opnås ved at oprette en mappe res / drawable-en-xhdpi eller enhver anden skærmtæthed, vi har brug for. På den måde kan vi levere en bred vifte af ressourcer og ikke behøver at bekymre os om at vælge den rigtige. Selvfølgelig: uden at glemme, at skærmtætheden er den eneste modifikator, der ikke har brug for standardværdier. Alle de andre har brug for en standardværdi, ellers risikerer vi, at applikationen går ned.


Du er interesseret i:
Sådan fjernes vira på Android
Følg os på Google Nyheder

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Actualidad Blog
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.