Latest web development tutorials

Android Ressourcen (Ressourcen) Management

Es gibt viele Dinge verwendet, um eine ausgezeichnete Android App bauen. Neben der Anwendung zur Codierung, müssen Sie sich auf eine Vielzahl von Ressourcen zu konzentrieren, wie Sie eine Vielzahl von statischen Inhalten verwenden, wie Bitmaps, Farben, Layout-Definition, Benutzeroberfläche Strings, Animation und so weiter. Diese Ressourcen werden in die Projekt res / Standalone-Unterverzeichnis in Verkehr gebracht.

In diesem Abschnitt des Tutorials erfahren Sie, wie Sie Ihre Anwendungsressourcen zu organisieren, alternative Ressourcen angeben, und greifen Sie in Ihrer Anwendung.


Organisatorische Ressourcen in Eclipse

Sie müssen in jeder Ressource unter bestimmten Unterverzeichnis Ihres Projekts res / Verzeichnis abgelegt werden. Zum Beispiel ist dies eine einfache Datei-Level-Projekt:

MyProject/
    src/  
        MyActivity.java  
    res/
        drawable/  
            icon.png  
        layout/  
            activity_main.xml
            info.xml
        values/  
            strings.xml 

res / Verzeichnis enthält alle Ressourcen in verschiedenen Unterverzeichnissen. Hier ist ein Bild Ressource, zwei Layout-Ressourcen und eine String-Ressource-Datei. Die folgende Tabelle gibt eine detaillierte in den Projekt res / Verzeichnis Support-Ressourcen.

Verzeichnis Ressourcentyp
anim / XML-Datei, die die Animationseigenschaft definiert. Sie werden in res / Anim / Ordner gespeichert, nach Art des Zugriffs R.anim
Farbe / XML-Datei, die die Farbe Statusliste definiert. Sie werden in res / Farbe / Ordner gespeichert, nach Art des Zugriffs R.color
ziehbar / Bilddateien, wie .png, .jpg, .gif oder XML-Datei wird als Bitmap, Zustandsliste zusammengestellt, Formen, animierte Bilder. Sie werden in res / ziehbar / Ordner gespeichert, nach Art des Zugriffs R.drawable
Layout / Custom UI-XML-Datei-Layout. Sie werden in res / Layout / Ordner gespeichert, nach Art des Zugriffs R.layout
Menü / Benutzerdefinierte Anwendungsmenü XML-Dateien, wie im Optionsmenü, Kontextmenüs, Untermenüs. Sie werden in res / Menü / Ordner gespeichert, nach Art des Zugriffs R.menu
raw / Alle Dateien werden in ihrer ursprünglichen Form gespeichert. Wir müssen benannte Ressource ID R.raw.filename, die RAW-Datei zu öffnen, indem Resource.openRawResource () aufrufen
Werte / XML-Dateien enthalten einfache Werte (wie Strings, Integer, Farbe, etc.). Hier sind einige der Ressourcen unter den Ordner-Namenskonventionen. arrays.xml im Namen einer Reihe von Ressourcen, durch R.array Art des Zugriffs; bools.xml Ressourcen im Namen der Boolesche Werte, Art des Zugriffs von R.bool;; integers.xml eine ganze Zahl von Ressourcen durch R.integer Klasse zugegriffen stellt Colors.xml Ressourcen im Namen der Farbe, R.color Klasse zugegriffen durch; dimens.xml Vertreter Bemaßungswerte, durch R.dimen Art des Zugriffs; strings.xml stellt eine String-Ressource, durch R.string Art des Zugriffs; styles.xml Vertreter Stil Ressource, nach Art der Zugang R.style
xml / Durch den Aufruf von Resources.getXML () beliebige XML-Dateien zur Laufzeit zu lesen. Verschiedene Konfigurationsdateien können Runtime hier gespeichert werden

Alternative Ressourcen

Ihre Anwendung Ressourcen bereitzustellen, die eine alternative Konfiguration für ein bestimmtes Gerät zu unterstützen. Zum Beispiel benötigen Sie eine alternative Bild von Ressourcen für verschiedene Bildschirmauflösungen zur Verfügung zu stellen, die eine alternative String-Ressourcen für verschiedene Sprachen. Zur Laufzeit erkennt Android die aktuelle Gerätekonfiguration und laden die entsprechenden Ressourcen für eine Anwendung.

Um eine Reihe von alternativen Ressourcen für spezifische Konfiguration, im Anschluss an die Schritte identifizieren:

  • Erstellen Sie ein neues Verzeichnis res / bis <resource_name> _ <config_qualifier> benannt werden. Hier resources_name alle Ressourcen in der Tabelle erwähnt, wie das Layout und Bilder. Qualifier wird feststellen, welche Ressourcen personalisierte Konfiguration zu verwenden. Sie können die offizielle Dokumentation für eine vollständige Liste der verschiedenen Arten von Ressourcen-Qualifikationsspiel zu sehen.
  • Speichern von alternativen Ressourcen in Reaktion auf dieses Verzeichnis. Diese Ressource-Dateien müssen zeigen, die Standard-Ressource-Dateinamen mit den folgenden Beispielen konsistent ist, aber diese Dokumente den Inhalt der Substitution bestimmen. Zum Beispiel: Während die Datei denselben Namen Bild, aber die Bildschirmauflösung des Bildauflösung höher sein wird.

Hier ist ein Beispiel, das Standardbild des Bildschirms und hochauflösende Bild Substitution zu spezifizieren.

MyProject/
   src/
    main/
    java/
       MyActivity.java  
       res/
          drawable/  
            icon.png
            background.png
        drawable-hdpi/  
            icon.png
            background.png  
        layout/  
            activity_main.xml
            info.xml
        values/  
            strings.xml

Hier ist ein weiteres Beispiel, das Standard-Layout-Sprache und alternative Layouts arabische Sprache angeben.

MyProject/
   src/
    main/
    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

Der Zugang zu Ressourcen

In der Anwendungsentwicklung benötigen wir Zugriff auf definierte Ressourcen, entweder durch Code oder über XML-Dateien. Die folgenden Abschnitte beschreiben, wie diese Ressourcen in zwei Szenarien separat zuzugreifen.

Im Code-Ressourcen zugreifen

Wenn die Android-Anwendung kompiliert wird eine Klasse R zu erzeugen, die die ID und alle res / Verzeichnis-Ressourcen enthält. Sie können die Klasse R verwenden, + von der Unterklasse Ressourcennamen oder direkt die Ressourcen-ID verwenden, um Ressourcen zugreifen zu können.

Beispiele

Zugang res / ziehbar / myimage.png, und legen Sie es auf die Image, würden Sie den folgenden Code verwenden:

ImageView imageView = (ImageView) findViewById(R.id.myimageview);
imageView.setImageResource(R.drawable.myimage);

Die erste Zeile des Codes in hier zu R.id.myimageview definiert myimageview von Image in der Layout-Datei erhalten. Die zweite Zeile mit R.drawable.myimage, um das Bild in res / ziehbar in einem Unterverzeichnis namens myimage bekommen.

Beispiele

Betrachten wir ein Beispiel, in dem res / Werte / strings.xml wie folgt definiert:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string  name="hello">Hello, World!</string>
</resources>

Jetzt können Sie die ID des Objekts msg von Textview-Ressource-ID verwenden, um den Text zu setzen, wie folgt:

TextView msgTextView = (TextView) findViewById(R.id.msg);
msgTextView.setText(R.string.hello);

Beispiele

Betrachten Sie die folgende Definition des Layouts res / Layout / activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent" 
   android:layout_height="fill_parent" 
   android:orientation="vertical" >

   <TextView android:id="@+id/text"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Hello, I am a TextView" />

   <Button android:id="@+id/button"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Hello, I am a Button" />

</LinearLayout>

Der Anwendungscode wird die Aktivität Layout onCreate () -Methode wie folgt laden:

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <color name="opaque_red">#f00</color>
   <string name="hello">Hello!</string>
</resources>

Der Zugang in XML

Betrachten Sie die folgende XML-Ressource-Datei res / Werte / strings.xml, die eine Farbressource und eine String-Ressource enthält -

<?xml version="1.0" encoding="utf-8"?>
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:textColor="@color/opaque_red"
    android:text="@string/hello" />

Jetzt können Sie diese Ressourcen in der folgenden Layout-Datei verwenden, um die Textfarbe und Textinhalt zu setzen:

<code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;EditText xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:textColor="@color/opaque_red"
    android:text="@string/hello" /&gt;
</code>

Nun, wenn Sie zum vorherigen Abschnitt zurückkehren, die "Hallo Welt!" Instanz zu erklären, kann ich Ihnen in diesem Abschnitt bestätigen alle ein besseres Verständnis des Konzepts haben. Daher empfehle ich zu stark zurückgehen in den vorherigen Beispielen zu suchen, und ich verwende eine andere Sicht auf die Basisressourcennutzung.