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 AssetManager
de , 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 :
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 :