Share via


Android Varlıklarını Kullanma

Varlıklar , uygulamanıza metin, xml, yazı tipleri, müzik ve video gibi rastgele dosyalar eklemenin bir yolunu sağlar. Bu dosyaları "kaynak" olarak eklemeye çalışırsanız, Android bunları kaynak sisteminde işler ve ham verileri alamazsınız. Verilere el değmeden erişmek istiyorsanız Varlıklar bunu gerçekleştirmenin bir yoludur.

Projenize eklenen varlıklar, uygulamanız tarafından AssetManager kullanılarak okunabilen bir dosya sistemi gibi görünür. Bu basit tanıtımda projemize bir metin dosyası varlığı ekleyecek, kullanarak AssetManagerokuyacak ve textView'da görüntüleyeceğiz.

Project'e Varlık Ekleme

Varlıklar projenizin klasörüne gider Assets . Bu klasöre adlı read_asset.txtyeni bir metin dosyası ekleyin. "Bir varlıktan geldim!" gibi bir metin ekleyin.

Visual Studio bu dosya için Derleme Eylemi'ni AndroidAsset olarak ayarlamış olmalıdır:

Setting the build action to AndroidAsset

Doğru BuildAction seçildiğinde, dosyanın derleme zamanında APK'ye paketlenmesi sağlanır.

Varlıkları Okuma

Varlıklar, AssetManager kullanılarak okunur. örneğiniAssetManager, bir üzerindeki Android.Content.ContextAssets özelliğine erişerek (etkinlik gibi) kullanabilirsiniz. Aşağıdaki kodda, read_asset.txt varlığımızı açar, içeriği okur ve TextView kullanarak görüntüleriz.

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

İkili Varlıkları Okuma

Yukarıdaki örnekte kullanımı StreamReader metin varlıkları için idealdir. İkili varlıklar için aşağıdaki kodu kullanın:

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

}

Uygulamayı Çalıştırma

Uygulamayı çalıştırdığınızda aşağıdakileri görmeniz gerekir:

Example screenshot