Sobes.tech
Junior

Šta su resursi u Androidu i koje podatke možemo u njih skladištiti?

sobes.tech АИ

Одговор од АИ

Resursi u Androidu su spoljašnji podaci koje koristi aplikacija, ali nisu direktno uključeni u kod. Oni su odvojeni od logike aplikacije i čuvaju se u podkatalogima foldera res u korenskom direktorijumu projekta. Android pruža skup alata za pristup i upravljanje resursima.

Resursi se koriste za:

  • Lokalizaciju aplikacije (podrška za različite jezike).
  • Prilagođavanje različitim veličinama i rezolucijama ekrana.
  • Odvajanje dizajna od logike.
  • Olakšavanje ažuriranja interfejsa.

U resursima se mogu čuvati sledeći tipovi podataka:

  • Drawable: Razni grafički elementi poput slika (PNG, JPEG, GIF), XML definicije oblika, prekidači i dr. Čuvaju se u podkatalogima 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 fajlovi koji opisuju strukturu korisničkog interfejsa aktivnosti, fragmenta ili pogleda. Čuvaju se u podkatalogima 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="Zdravo, svet!"/>
    </LinearLayout>
    
  • Mipmap: Optimizovane slike za ikone aplikacije različitih gustina. Preferira se za ikone nego drawable. Čuvaju se u podkatalogima mipmap (npr. mipmap-hdpi, mipmap-xhdpi).
  • String: Vrednosti nizova koje se koriste u aplikaciji. Omogućavaju laku lokalizaciju. Čuvaju se u XML fajlovima u podkatalogima values (npr. values/strings.xml).
    <resources>
        <string name="app_name">Moja aplikacija</string>
        <string name="welcome_message">Dobrodošli!</string>
    </resources>
    
  • Style: Definicije stilova za prikaze. Omogućavaju centralizovano upravljanje atributima izgleda. Čuvaju se u XML fajlovima u podkatalogima values (npr. 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: Definicije tema koje se primenjuju na celu aktivnost ili aplikaciju. Nasleđuju se od stilova. Čuvaju se u XML fajlovima u podkatalogima values.
  • Array: Nizovi tekstualnih vrednosti, celih brojeva ili referenci na resurse. Čuvaju se u XML fajlovima u podkatalogima values.
    <resources>
        <string-array name="planets_array">
            <item>Merkur</item>
            <item>Venera</item>
            <item>Zemlja</item>
            <item>Mars</item>
        </string-array>
    </resources>
    
  • Color: Definicije boja u heksadecimalnom formatu ili reference na druge boje. Čuvaju se u XML fajlovima u podkatalogima values (npr. values/colors.xml).
    <resources>
        <color name="colorPrimary">#008577</color>
        <color name="colorAccent">#03DAC5</color>
    </resources>
    
  • Dimension: Definicije dimenzija, poput margina, paddinga, veličina fontova itd., sa oznakom jedinica (dp, sp, pt, px, mm, in). Čuvaju se u XML fajlovima u podkatalogima values (npr. values/dimens.xml).
    <resources>
        <dimen name="margin_small">8dp</dimen>
        <dimen name="font_size_medium">16sp</dimen>
    </resources>
    
  • Raw: Bilo koje sirove fajlove u neobrađenom obliku (audio, video, tekstualni fajlovi itd.). Pristup im se vrši putem ulaznog toka. Čuvaju se u raw podkatalogu.
  • XML: Bilo koje XML fajlove koji se mogu parsirati u aplikaciji (npr. konfiguracioni fajlovi). Čuvaju se u xml podkatalogu.

Pristup resursima vrši se putem automatski generisane klase R. Na primer, za pristup string resursu app_name:

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

Korišćenje resursa omogućava kreiranje fleksibilnih i lako održivih Android aplikacija.