Share via


Uso de recursos de Android

Los recursos proporcionan una manera de incluir archivos arbitrarios como texto, xml, fuentes, música y vídeo en la aplicación. Si intenta incluir estos archivos como "recursos", Android los procesará en su sistema de recursos y no podrá obtener los datos sin procesar. Si desea acceder a los datos sin modificar, los recursos son una manera de hacerlo.

Los recursos agregados al proyecto se mostrarán igual que un sistema de archivos que la aplicación puede leer mediante AssetManager. En esta demostración sencilla, vamos a agregar un recurso de archivo de texto a nuestro proyecto, leerlo mediante AssetManager, y mostrarlo en un TextView.

Agregar recurso a Project

Los recursos se van en la Assets carpeta del proyecto. Agregue un nuevo archivo de texto a esta carpeta denominada read_asset.txt. Coloque algún texto en él como "¡He venido de un recurso!".

Visual Studio debe haber establecido la acción de compilación de este archivo en AndroidAsset:

Setting the build action to AndroidAsset

Al seleccionar el BuildAction correcto, se garantiza que el archivo se empaquetará en el APK en tiempo de compilación.

Leer recursos

Los recursos se leen mediante AssetManager. Una instancia de AssetManager está disponible accediendo a la propiedad Assets en, Android.Content.Contextcomo una actividad. En el código siguiente, abrimos nuestro recurso de read_asset.txt, leemos el contenido y lo mostramos mediante 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);
}

Leer recursos binarios

El uso de StreamReader en el ejemplo anterior es ideal para los recursos de texto. En el caso de los recursos binarios, use el código siguiente:

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

}

Ejecutar la aplicación

Ejecute la aplicación y debería ver lo siguiente:

Example screenshot