Sobes.tech
Junior

Co jsou to zdroje v Androidu a jaká data do nich lze ukládat?

sobes.tech AI

Odpověď od AI

Zdroje v Androidu jsou externí data, která aplikace používá, ale nejsou přímo začleněna do kódu. Jsou oddělena od logiky aplikace a uložena ve vedlejších adresářích složky res v kořenovém adresáři projektu. Android poskytuje sadu nástrojů pro přístup a správu zdrojů.

Zdroje se používají pro:

  • Lokalizaci aplikace (podpora různých jazyků).
  • Přizpůsobení různým velikostem a rozlišením obrazovek.
  • Oddělení designu od logiky.
  • Zjednodušení aktualizací rozhraní.

Do zdrojů lze uložit následující typy dat:

  • Drawable: Různé grafické prvky, například obrázky (PNG, JPEG, GIF), XML definice tvarů, přepínače atd. Uloženy ve vedlejších adresářích 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 soubory popisující strukturu uživatelského rozhraní aktivity, fragmentu nebo pohledu. Uloženy ve vedlejších adresářích 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, světe!"/>
    </LinearLayout>
    
  • Mipmap: Optimalizované obrázky pro ikony aplikace různých hustot. Upřednostňuje se použití pro ikony než drawable. Uloženy ve vedlejších adresářích mipmap (například mipmap-hdpi, mipmap-xhdpi).
  • String: Textové hodnoty používané v aplikaci. Umožňují snadnou lokalizaci. Uloženy v XML souborech ve vedlejších adresářích values (například values/strings.xml).
    <resources>
        <string name="app_name">Moje aplikace</string>
        <string name="welcome_message">Vítejte!</string>
    </resources>
    
  • Style: Definice stylů pro pohledy. Umožňují centralizované řízení atributů vzhledu. Uloženy v XML souborech ve vedlejších adresářích values (napří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: Definice témat, která se používají pro celou aktivitu nebo aplikaci. Dědí od stylů. Uloženy v XML souborech ve vedlejších adresářích values.
  • Array: Pole řetězcových hodnot, celých čísel nebo odkazů na zdroje. Uloženy v XML souborech ve vedlejších adresářích values.
    <resources>
        <string-array name="planets_array">
            <item Merkur</item>
            <item>Venuše</item>
            <item>Země</item>
            <item>Mars</item>
        </string-array>
    </resources>
    
  • Color: Definice barev ve formátu šestnáctinných hodnot nebo odkazy na jiné barvy. Uloženy v XML souborech ve vedlejších adresářích values (například values/colors.xml).
    <resources>
        <color name="colorPrimary">#008577</color>
        <color name="colorAccent">#03DAC5</color>
    </resources>
    
  • Dimension: Definice velikostí, jako jsou okraje, výplně, velikosti písma atd., s uvedením jednotek (dp, sp, pt, px, mm, in). Uloženy v XML souborech ve vedlejších adresářích values (například values/dimens.xml).
    <resources>
        <dimen name="margin_small">8dp</dimen>
        <dimen name="font_size_medium">16sp</dimen>
    </resources>
    
  • Raw: Libovolné soubory v surovém formátu (audio, video, textové soubory atd.). Přístup přes vstupní proud. Uloženy ve vedlejších adresářích raw.
  • XML: Libovolné XML soubory, které lze v aplikaci analyzovat (například konfigurační soubory). Uloženy ve vedlejších adresářích xml.

Přístup ke zdrojům se provádí přes automaticky generovanou třídu R. Například pro přístup ke stringové zdrojové hodnotě app_name:

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

Použití zdrojů umožňuje vytvářet flexibilní a snadno udržovatelné Android aplikace.