Verwenden von Android-Ressourcen

Assets bieten eine Möglichkeit, beliebige Dateien wie Text, XML, Schriftarten, Musik und Video in Ihre Anwendung aufzunehmen. Wenn Sie versuchen, diese Dateien als "Ressourcen" einzuschließen, verarbeitet Android sie in das Ressourcensystem, und Sie können die Rohdaten nicht abrufen. Wenn Sie unangetastet auf Daten zugreifen möchten, sind Ressourcen eine Möglichkeit, dies zu tun.

Ressourcen, die Ihrem Projekt hinzugefügt wurden, werden wie ein Dateisystem angezeigt, aus dem Ihre Anwendung mithilfe von AssetManager lesen kann. In dieser einfachen Demo fügen wir dem Projekt ein Textdateiobjekt hinzu, lesen es mithilfe von AssetManagerund zeigen es in einer TextView an.

Hinzufügen von Medienobjekten zum Projekt

Ressourcen werden im Assets Ordner Ihres Projekts gespeichert. Fügen Sie diesem Ordner eine neue Textdatei mit dem Namen read_asset.txthinzu. Platzieren Sie darin Text wie "Ich kam aus einem Asset!".

Visual Studio sollte die Buildaktion für diese Datei auf AndroidAsset festgelegt haben:

Festlegen der Buildaktion auf AndroidAsset

Wenn Sie die richtige BuildAction auswählen, wird sichergestellt, dass die Datei zur Kompilierzeit in das APK gepackt wird.

Lesen von Ressourcen

Assets werden mithilfe eines AssetManagers gelesen. Eine instance von AssetManager ist verfügbar, indem sie auf die Assets-Eigenschaft für eine Android.Content.Contextzugreifen, z. B. eine Aktivität. Im folgenden Code öffnen wir unser read_asset.txt-Asset , lesen den Inhalt und zeigen ihn mithilfe einer TextView an.

protected override void OnCreate (Bundle bundle)
{
    base.OnCreate (bundle);

    // Create a new TextView and set it as our view
    TextView tv = new TextView (this);
    
    // Read the contents of our asset
    string content;
    AssetManager assets = this.Assets;
    using (StreamReader sr = new StreamReader (assets.Open ("read_asset.txt")))
    {
        content = sr.ReadToEnd ();
    }

    // Set TextView.Text to our asset content
    tv.Text = content;
    SetContentView (tv);
}

Lesen von binären Ressourcen

Die Verwendung von im obigen StreamReader Beispiel ist ideal für Textressourcen. Verwenden Sie für binäre Ressourcen den folgenden Code:

protected override void OnCreate (Bundle bundle)
{
    base.OnCreate (bundle);

    // Read the contents of our asset
    const int maxReadSize = 256 * 1024;
    byte[] content;
    AssetManager assets = this.Assets;
    using (BinaryReader br = new BinaryReader (assets.Open ("mydatabase.db")))
    {
        content = br.ReadBytes (maxReadSize);
    }

    // Do something with it...

}

Ausführen der Anwendung

Führen Sie die Anwendung aus, und Es sollte Folgendes angezeigt werden:

Beispielfoto