Partager via


Utilisation de ressources Android

Les ressources permettent d’inclure des fichiers arbitraires tels que du texte, du xml, des polices, de la musique et des vidéos dans votre application. Si vous essayez d’inclure ces fichiers en tant que « ressources », Android les traitera dans son système de ressources et vous ne pourrez pas obtenir les données brutes. Si vous souhaitez accéder aux données intactes, les ressources sont un moyen de le faire.

Les ressources ajoutées à votre projet s’affichent comme un système de fichiers qui peut lire à partir de votre application à l’aide d’AssetManager. Dans cette démonstration simple, nous allons ajouter une ressource de fichier texte à notre projet, la lire à l’aide AssetManagerde , et l’afficher dans un TextView.

Ajouter un élément à Project

Les ressources sont dans le Assets dossier de votre projet. Ajoutez un nouveau fichier texte à ce dossier appelé read_asset.txt. Placez-y du texte comme « Je viens d’un actif ! ».

Visual Studio doit avoir défini l’action de génération de ce fichier sur AndroidAsset :

Définition de l’action de génération sur AndroidAsset

La sélection de la buildAction appropriée garantit que le fichier sera empaqueté dans l’APK au moment de la compilation.

Lecture des ressources

Les ressources sont lues à l’aide d’un AssetManager. Une instance de est AssetManager disponible en accédant à la propriété Assets sur un Android.Content.Context, tel qu’une activité. Dans le code suivant, nous ouvrons notre ressource deread_asset.txt , lisons le contenu et l’affichons à l’aide d’un objet TextView.

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);
}

Lecture des ressources binaires

L’utilisation de StreamReader dans l’exemple ci-dessus est idéale pour les ressources de texte. Pour les ressources binaires, utilisez le code suivant :

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...

}

Exécution de l'application

Exécutez l’application et vous devez voir les éléments suivants :

Exemple de capture d’écran