Android-források és nemzetközivé válás

alap-útmutató-programozás-android-5

sok erőforrás az Android alkalmazás alapvető részét képezik. Amikor csak lehetséges elválasztjuk őket a kódtól, ily módon fenntarthatóbb alkalmazást fogunk elérni. Ha jól szervezzük őket, az Android gondoskodik a számunkra megfelelő elem kiválasztásáról is a konfigurációtól függően - jellemzően a képernyő méretétől és a felhasználó nyelvétől függően.

Alapvető források: képek és szövegek

sok szövegek mindig külön kell választani őket a kódtól. Ha nem tesszük meg, a kód fenntartása többe fog nekünk kerülni: át kell vizsgálnunk az összes előfordulást, és minden alkalommal megfeledkezhetünk néhányról, amikor változtatásokat kell végrehajtanunk. A legrosszabb az egészben, hogy akkor az alkalmazásunk nem lesz nemzetközivé tehető.

Ezért nem ajánlott szövegeket beilleszteni a kódba. Az egyetlen kivétel lehet a nem a végfelhasználónak szánt üzenetek, például a konzol kimeneti üzenetei. De általában minden szövegünknek a külön erőforrás fájl. Felhívjuk azt a fájlt karakterláncok.xml, és a teljes utad a projekten belül az lesz res / values ​​/ strings.xml.

A strings.xml fájl tartalma ehhez hasonló lesz:

<erőforrás>húr név = "string_1">szöveg_1
    <húr név = "string_2">szöveg_2

Most a kódunkban ezeket a szövegeket olyan mondatokkal tudjuk lekérni, mint a getResources (). GetString (R.string.string_1), vagy az elrendezésünkön belül, például @ string / string_1. Ily módon elértük azt, amit akartunk: a kód erőforrástól függetlenné válik.

A másik erőforrás, amelyet rendszeresen használunk, a képek. Ehhez több mappánk van a projekten belül, például res / drawable, res / drawable-hdpi, res / drawable-xhdpi és hasonlók.

A "rajzolható" utótagok a képernyő sűrűsége. Minden Android-eszköznek képernyőnként pixelsűrűsége van, amelyet több csoportba sorolnak:

  • ldpi (kicsi, x0,75)
  • mdpi (átlag x1)
  • hdpi (nagy x1,5)
  • xhdpi (extra nagy x2)
  • xxhdpi (extra extra nagy x3)

Ily módon ugyanaz a kép adaptálható különböző sűrűségű képernyők anélkül, hogy deformitások jelentkeznének. Javasoljuk, hogy minden mappában legyen egy kép másolata, tiszteletben tartva az arányokat (az mdpi-t veszi alapul és egyenlő 1-vel), bár ezek közül csak az egyik használható, majd az Android automatikusan elvégez egy átméretezési műveletet a másik számára állásfoglalások. Javasoljuk azonban, hogy minden mappát lefedjen a rendszer mentése érdekében.

A "rajzolható" mappa nem tartalmaz képeket, csak a haladó elemek, például a szelektorok xml-definícióihoz fogjuk használni.

Egyéb források

A projekt / res könyvtárában sokkal több erőforrás mehet el. Hangok, a szövegekhez hasonló módon használható színmeghatározások, alkalmazásunk méretei, nézeteink stílusai és még sok más.

Azok számára, akik szeretnének többet megtudni ezekről az erőforrásokról, konzultálhatnak a hivatalos Android dokumentációt.

Internacionalizálás Androidon

Azokkal a képekkel, amelyekbe már bevezettünk alternatív erőforrás rendszer az Android rendszeren: Ha xhdpi sűrűségű képernyőnk van (például egy Galaxy S3 képernyője), akkor az Android előnyben részesíti a rajzolható-xhdpi könyvtár képeit a többiekkel szemben.

Ez a rendszer sok más konfiguráció megkülönböztetésére használható: normál vagy fekvő tájolású, vezetési vagy normál mód, éjszakai vagy normál mód ... Ismét javasoljuk a hivatalos Android dokumentációt hogy minden részletet megismerjen. Már beszéltünk arról, hogyan lehet képeket biztosítani a képernyő sűrűségének megfelelően, most az alkalmazásunk másik nagyon fontos felhasználására fogunk összpontosítani: nemzetközivé.

Ha azt akarjuk, hogy a szövegeink több nyelven is elérhetőek legyenek, akkor a strings.xml fájl minden másolatához külön mappát kell hozzáadnunk. Így, ha az alkalmazást angolra és franciára akarjuk portálni, akkor a következő három könyvtár áll rendelkezésünkre:

  • res / értékek (alapértelmezett értékek)
  • res / values-en
  • res / values-fr

Vagyis az adott nyelv ISO kódjával ellátott utótag kerül a mappába, és az alapértelmezett szövegeket utótag nélkül hagyjuk a mappában. Ez utóbbi nagyon fontos, mert a képernyő sűrűségét leszámítva mindig meg kell adnunk a-t alapértelmezett érték minden erőforráshoz. Amikor bármilyen erőforrásra van szükségünk, az Android megkeresi a legmegfelelőbbet, és ha nem talál ilyet, akkor váratlanul bezárhatjuk az alkalmazást. Ezért mindig kell lennie egy olyan nyelvnek, amelyet alapértelmezés szerint választunk, és hogy az összes erőforrás alapértelmezett értéke.

Ily módon újra megkapjuk, amit szerettünk volna: amellett, hogy elválasztottuk a szövegeket a kódtól, most megkapjuk a alkalmazás különböző nyelveken anélkül, hogy egyáltalán megérintenénk a kódunkat.

Az alternatív erőforrások előállításának rendszere természetesen kombinálható. A korábban jelzett linket követve meglátjuk, milyen sorrendben kell az utótagoknak járniuk. Ha követjük az egyszerű példát, amelyet ebben az oktatóanyagban mutatunk be, akkor gondolkodhatnánk azon képeken, amelyek csak az angol verzióhoz készültek. Ezt úgy érhetjük el, hogy létrehozunk egy res / drawable-en-xhdpi mappát, vagy bármilyen más szükséges képernyősűrűséget. Így sokféle forrást tudunk biztosítani, és nem kell aggódnunk a megfelelő kiválasztása miatt. Természetesen: anélkül, hogy megfeledkeznénk arról, hogy a képernyő sűrűsége az egyetlen módosító, amelynek nincs szüksége alapértelmezett értékekre. A többieknek alapértelmezett értékre van szükségük, különben megkockáztatjuk az alkalmazás összeomlását.


Önt érdekli:
Hogyan lehet eltávolítani a vírusokat az Android rendszeren
Kövessen minket a Google Hírekben

Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Actualidad Blog
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.