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 AssetManager
okuyacak 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.txt
yeni 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:
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.Context
Assets ö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: