Sobes.tech
Junior

Čo sú to zdroje v Androide a aké údaje je možné v nich ukladať?

sobes.tech AI

Odpoveď od AI

Zdroje v Androidu sú vonkajšie údaje, ktoré aplikácia používa, ale nie sú priamo zahrnuté v kóde. Sú oddelené od logiky aplikácie a ukladajú sa v podadresároch priečinka res v koreňovom adresári projektu. Android poskytuje súbor nástrojov na prístup k zdrojom a ich správu.

Zdroje sa používajú na:

  • Lokalizáciu aplikácie (podpora rôznych jazykov).
  • Prispôsobenie rôznym veľkostiam a rozlíšeniam obrazoviek.
  • Oddelenie dizajnu od logiky.
  • Zjednodušenie aktualizácie rozhrania.

V zdrojoch môžete uložiť nasledujúce typy dát:

  • Drawable: Rôzne grafické prvky, ako obrázky (PNG, JPEG, GIF), XML definície tvarov, prepínače a pod. Ukladajú sa v podadresároch drawable.
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
        <solid android:color="#FF0000"/>
        <corners android:radius="10dp"/>
    </shape>
    
  • Layout: XML súbory, ktoré opisujú štruktúru používateľského rozhrania Activity, Fragment alebo View. Ukladajú sa v podadresároch layout.
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Ahoj, svet!"/>
    </LinearLayout>
    
  • Mipmap: Optimalizované obrázky pre ikony aplikácie rôznych hustôt. Preferovanejšie na použitie pre ikony než drawable. Ukladajú sa v podadresároch mipmap (napríklad mipmap-hdpi, mipmap-xhdpi).
  • String: Textové hodnoty používané v aplikácii. Umožňujú jednoduchú lokalizáciu textu. Ukladajú sa v XML súboroch v podadresároch values (napríklad values/strings.xml).
    <resources>
        <string name="app_name">Moja aplikácia</string>
        <string name="welcome_message">Vitajte!</string>
    </resources>
    
  • Style: Definície štýlov pre View. Umožňujú centralizované riadenie atribútov vzhľadu. Ukladajú sa v XML súboroch v podadresároch values (napríklad values/styles.xml).
    <resources>
        <style name="MyTextViewTextAppearance" parent="android:TextAppearance.Medium">
            <item name="android:textColor">#000000</item>
            <item name="android:textStyle">bold</item>
        </style>
    </resources>
    
  • Theme: Definície tém, ktoré sa používajú pre celú Activity alebo aplikáciu. Dedičia od štýlov. Ukladajú sa v XML súboroch v podadresároch values.
  • Array: Pole textových hodnôt, celých čísel alebo odkazov na zdroje. Ukladajú sa v XML súboroch v podadresároch values.
    <resources>
        <string-array name="planets_array">
            <item>Merkúr</item>
            <item>Venuša</item>
            <item>Zem</item>
            <item>Mars</item>
        </string-array>
    </resources>
    
  • Color: Definície farieb vo formáte hexadecimálnych hodnôt alebo odkazov na iné farby. Ukladajú sa v XML súboroch v podadresároch values (napríklad values/colors.xml).
    <resources>
        <color name="colorPrimary">#008577</color>
        <color name="colorAccent">#03DAC5</color>
    </resources>
    
  • Dimension: Definície veľkostí, ako sú okraje, paddingy, veľkosti písma a pod., s uvedením jednotiek (dp, sp, pt, px, mm, in). Ukladajú sa v XML súboroch v podadresároch values (napríklad values/dimens.xml).
    <resources>
        <dimen name="margin_small">8dp</dimen>
        <dimen name="font_size_medium">16sp</dimen>
    </resources>
    
  • Raw: Libovolné súbory v surovom formáte (audio, video, textové súbory a pod.). Prístup k nim je cez vstupný prúd. Ukladajú sa v podadresároch raw.
  • XML: Libovolné XML súbory, ktoré môžu byť spracované v aplikácii (napríklad konfiguračné súbory). Ukladajú sa v podadresároch xml.

Prístup k zdrojom sa vykonáva cez automaticky generovanú triedu R. Napríklad, pre prístup k reťazcovému zdroju app_name:

// Java
String appName = getResources().getString(R.string.app_name);
// Kotlin
val appName = resources.getString(R.string.app_name)

Používanie zdrojov umožňuje vytvárať flexibilné a ľahko udržiavateľné Android aplikácie.