Android programozás #5 | Resource-ok kezelése

Sok más elem van még, amiket egy jó android alkalmazás felépítéséhez használunk. Eltekintve az alkalmazás írásától, figyelnünk kell számos egyéberő forrásra, mint pl. a statikus tartalom, amit a kód használ, például a bittérképek, a színek, az elrendezés, az animációs utasítások, és így tovább. Ezek a források mindig elkülönülve zajlanak, különböző alkönyvtárakban a projekt res/ könyvtárában.

Az alábbi leírás elmagyarázza, hogyan tervezzünk meg az alkalmazásunk erőforrásait, hogyan adjuk meg az alternatív erőforrásokat és hogyan érhetjük el őket az alkalmazáson belül.

Erőforrások megtervezése Android Studio-ban

MyProject/
   app/
      manifest/
         AndroidManifest.xml
   java/
      MyActivity.java  
      res/
         drawable/  
            icon.png  
         layout/  
            activity_main.xml
            info.xml
         values/  
            strings.xml

 

Könyvtár és erőforrás típusok

anim/

XML fájlok, amik meghatározzák az animációk tulajdonságait. A res/anim/ könyvtárba mentődnek el és a R.anim osztályból érhetőek el.

color/

XML fájlok, amik meghatározzák a színek egy statikus listáját. A res/color/ könyvtárba mentődnek el és a R.color osztályból érhetőek el.

drawable/

Képfájlok, mint pl. .png, .jpg, .gif vagy XML fájlok, amik összeállnak bittérképekké, utasítás listákká, formákká, rajzolható animációkká. A res/drawable/ könyvtárba mentődnek el és a R.drawable osztályból érhetőek el.

layout/

XML fájlok, amik meghatározzák a felhasználói felület kinézetét. A res/layout/ könyvtárba mentődnek el és a R.layout osztályból érhetőek el.

menu/

XML fájlok, amik meghatározzák az alkalmazás menüjeit, mint pl. egy Beállítások menü. A res/menü/ könyvtárba mentődnek el és a R.menu osztályból érhetőek el.

raw/

Tetszőleges fájlok, amik nyers formában mentődnek el. Meg kell őket hívni a Resources.openRawResource() metódusban az erőforrás-azonosítóval, amit a R.raw.filename-mel tudjuk megnyitni.

values/

XML fájlok, amelyek magukba foglalják az egyszerű értékeket, úgymint a sztringeket, az egész számokat és a színeket. Például, itt van néhány fájlnév egyezmény az erőforrásoknak, amiket létrehozhatsz ebben a könyvtárban –

  • arrays.xml a tömbök erőforrásainak, és az R.array osztályból érthetőek el.
  • integers.xml az egész számok erőforrásainak és az R.integer osztályból érthetőek el.
  • bools.xml a logikai vagy erőforrásainak és az R.boolean osztályból érthetőek el.
  • colors.xml a szín értékeknek, és az R.color osztályból érthetőek el.
  • dimens.xml a dimenzió értékeknek, és az R.dimen osztályból érthetőek el.
  • strings.xml a sztring értékeknek, és az R.string osztályból érthetőek el.
  • styles.xml a stílusoknak, és az R.style osztályból érthetőek el.

xml/

Tetszőleges XML fájlok, amiket futtatás közben olvashatunk a Resources.getXML() metódus meghívásával. Különböző konfigurációs fájlokat menthetsz el itt, amiket futtatás közben használtál.

 

Alternatív erőforrások

Az alkalmazásunknak biztosítania kell az alternatív erőforrásokat, hogy támogatni tudjunk egyedi eszközkonfigurációkat. Például, tartalmaznia kell az alternatív rajzolható erőforrásokat különböző képernyő felbontáshoz és tartalmaznia kell az alternatív sztring erőforrásokat különböző nyelvekhez. Futtatás közben az Android érzékeli az aktuális eszközkonfigurálást és betölti a megfelelő erőforrásokat az alkalmazásunk számára.

Ahhoz, hogy meghatározzuk a konfigurációt – speciális alternatívák egy erőforrás készlet számára – kövessük az alábbi lépéseket:

  • Hozzunk létre egy új könyvtárat a res/ könyvtárban, az alábbi formában: <erőforrás_név>-<konfiguráció_jelző>. Itt az erőforrás_név az erőforrások bármelyike lesz a fenti felsorolásból, mint pl. layout, drawable, stb. A jelző meg fog határozni egy egyedi konfigurációt, ami ezeket a forrásokat használja. Utána tudunk nézni a hivatalos dokumentációban, az erőforrások különböző típusainak a jelzőinek egy teljes listájában.
  • Mentsd el a megfelelő alternatív erőforrásokat ebbe az új könyvtárba. Az erőforrások fájlokat pontosan ugyanúgy kell elnevezni, mint az alapértelmezett erőforrás fájlok, ahogy azt az alábbi példa is mutatja. Például, bár a képfájl név ugyanaz lesz, de a nagy felbontású képernyő számára, a felbontása nagy lesz.

Az alábbiakban láthatunk egy példát, amely meghatározza a képeket egy alapértelmezett képernyő számára és meghatározza az alternatív képeket a nagy felbontású képernyő számára.

MyProject/
   app/
      manifest/
         AndroidManifest.xml
   java/
      MyActivity.java   
         res/
            drawable/  
               icon.png
               background.png
         drawable-hdpi/  
            icon.png
            background.png  
         layout/  
            activity_main.xml
            info.xml
         values/  
            strings.xml

 

Az alábbi példa meghatározza a kinézetet egy alapértelmezett nyelv számára és meghatározza az alternatív kinézetet az arab nyelv számára.

MyProject/
   app/
      manifest/
         AndroidManifest.xml
   java/
      MyActivity.java   
      res/
         drawable/  
            icon.png
            background.png
         drawable-hdpi/  
            icon.png
            background.png  
         layout/  
            activity_main.xml
            info.xml
         layout-ar/
            main.xml
         values/  
            strings.xml

 

 

Leave a Reply