Sobes.tech
Junior

Wat zijn resources in Android en welke gegevens kunnen daarin worden opgeslagen?

sobes.tech AI

Antwoord van AI

Bronnen in Android zijn externe gegevens die door de app worden gebruikt, maar niet direct in de code zijn opgenomen. Ze worden gescheiden van de logica van de app en opgeslagen in submappen van de map res in de hoofdmap van het project. Android biedt een set tools voor toegang tot en beheer van bronnen.

Bronnen worden gebruikt voor:

  • Lokalisatie van de app (ondersteuning voor verschillende talen).
  • Aanpassing aan verschillende schermgroottes en resoluties.
  • Scheiding van ontwerp en logica.
  • Vereenvoudiging van interface-updates.

In bronnen kunnen de volgende gegevens types worden opgeslagen:

  • Drawable: Verschillende grafische elementen zoals afbeeldingen (PNG, JPEG, GIF), XML-definities van vormen, schakelaars, enz. Ze worden opgeslagen in submappen 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-bestanden die de structuur van de gebruikersinterface van een Activity, Fragment of View beschrijven. Ze worden opgeslagen in submappen 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="Hallo, wereld!"/>
    </LinearLayout>
    
  • Mipmap: Geoptimaliseerde afbeeldingen voor app-icoontjes van verschillende dichtheden. Voorkeur voor gebruik voor iconen dan drawable. Ze worden opgeslagen in submappen mipmap (bijvoorbeeld mipmap-hdpi, mipmap-xhdpi).
  • String: Tekstwaarden die in de app worden gebruikt. Makkelijk te lokaliseren. Ze worden opgeslagen in XML-bestanden in submappen values (bijvoorbeeld values/strings.xml).
    <resources>
        <string name="app_name">Mijn app</string>
        <string name="welcome_message">Welkom!</string>
    </resources>
    
  • Style: Definities van stijlen voor Views. Centraliseren van uiterlijkattributen. Ze worden opgeslagen in XML-bestanden in submappen values (bijvoorbeeld 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: Definities van thema's die op de hele Activity of app worden toegepast. Erven van stijlen. Ze worden opgeslagen in XML-bestanden in submappen values.
  • Array: Arrays van tekstwaarden, gehele getallen of resource-referenties. Ze worden opgeslagen in XML-bestanden in submappen values.
    <resources>
        <string-array name="planets_array">
            <item>Mercurius</item>
            <item>Venus</item>
            <item>Aarde</item>
            <item>Mars</item>
        </string-array>
    </resources>
    
  • Color: Kleuraanduidingen in hexadecimale formaten of referenties naar andere kleuren. Ze worden opgeslagen in XML-bestanden in submappen values (bijvoorbeeld values/colors.xml).
    <resources>
        <color name="colorPrimary">#008577</color>
        <color name="colorAccent">#03DAC5</color>
    </resources>
    
  • Dimension: Grootte-aanduidingen zoals marges, padding, lettergrootte, enz. met eenheid (dp, sp, pt, px, mm, in). Ze worden opgeslagen in XML-bestanden in submappen values (bijvoorbeeld values/dimens.xml).
    <resources>
        <dimen name="margin_small">8dp</dimen>
        <dimen name="font_size_medium">16sp</dimen>
    </resources>
    
  • Raw: Willekeurige bestanden in onbewerkte vorm (audio, video, tekstbestanden, enz.). Toegang via invoerstroom. Ze worden opgeslagen in submappen raw.
  • XML: Willekeurige XML-bestanden die in de app kunnen worden geparset (bijvoorbeeld configuratiebestanden). Ze worden opgeslagen in submappen xml.

Toegang tot bronnen gebeurt via de automatisch gegenereerde klasse R. Bijvoorbeeld, voor toegang tot de stringbron app_name:

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

Het gebruik van bronnen maakt het mogelijk om flexibele en gemakkelijk te onderhouden Android-apps te maken.