Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Neredeyse tüm Android uygulamalarının içinde bir tür kaynak olacaktır; en azından kullanıcı arabirimi düzenleri genellikle XML dosyaları biçimindedir. Bir Xamarin.Android uygulaması ilk oluşturulduğunda, varsayılan kaynaklar Xamarin.Android proje şablonu tarafından ayarlanır:
Varsayılan kaynakları oluşturan beş dosya Kaynaklar klasöründe oluşturulmuştur:
Icon.png – Uygulamanın varsayılan simgesi
Main.axml : Bir uygulamanın varsayılan kullanıcı arabirimi düzen dosyası. Android .xml dosya uzantısını kullanırken Xamarin.Android'in .axml dosya uzantısını kullandığını unutmayın.
Strings.xml – Uygulamanın yerelleştirilmesine yardımcı olacak bir dize tablosu
AboutResources.txt – Bu gerekli değildir ve güvenli bir şekilde silinebilir. Yalnızca Kaynaklar klasörüne ve içindeki dosyalara üst düzey bir genel bakış sağlar.
Resource.designer.cs – Bu dosya Xamarin.Android tarafından otomatik olarak oluşturulur ve korunur ve her kaynağa atanan benzersiz kimliği tutar. Bu, Java'da yazılmış bir Android uygulamasının sahip olacağı R.java dosyasına çok benzer ve aynı. Xamarin.Android araçları tarafından otomatik olarak oluşturulur ve zaman zaman yeniden oluşturulur.
Kaynak Oluşturma ve Kaynaklara Erişme
Kaynak oluşturmak, söz konusu kaynak türü için dizine dosya eklemek kadar basittir. Aşağıdaki ekran görüntüsünde bir projeye Alman yerel ayarları için dize kaynaklarının eklendiği gösterilmektedir. Dosyaya Strings.xml eklendiğinde Derleme Eylemi, Xamarin.Android araçları tarafından otomatik olarak AndroidResource olarak ayarlanmıştır:
Bu, Xamarin.Android araçlarının kaynakları düzgün bir şekilde derleyip APK dosyasına eklemesini sağlar. Herhangi bir nedenle Derleme Eylemi Android Kaynağı olarak ayarlanmadıysa dosyalar APK'nın dışında tutulur ve kaynaklara yükleme veya erişim girişimi bir çalışma zamanı hatasına neden olur ve uygulama kilitlenir.
Ayrıca, Android'in kaynak öğeleri için yalnızca küçük harf dosya adlarını desteklediğini, Xamarin.Android'in biraz daha affedici olduğunu unutmayın; hem büyük hem de küçük harf dosya adlarını destekler. Görüntü adlarının kuralı, ayırıcı olarak alt çizgi içeren küçük harf kullanmaktır (örneğin, my_image_name.png). Ayırıcı olarak tireler veya boşluklar kullanılıyorsa kaynak adlarının işlenemeyeceğini unutmayın.
Kaynaklar projeye eklendikten sonra, bunları bir uygulamada kullanmanın iki yolu vardır: program aracılığıyla (kodun içinde) veya XML dosyalarından.
Kaynaklara Program Aracılığıyla Başvurma
Bu dosyalara program aracılığıyla erişmek için benzersiz bir kaynak kimliği atanır. Bu kaynak kimliği, adlı özel bir sınıfta Resource
tanımlanan ve Resource.designer.cs dosyasında bulunan ve şuna benzer bir tamsayıdır:
public partial class Resource
{
public partial class Attribute
{
}
public partial class Drawable {
public const int Icon=0x7f020000;
}
public partial class Id
{
public const int Textview=0x7f050000;
}
public partial class Layout
{
public const int Main=0x7f030000;
}
public partial class String
{
public const int App_Name=0x7f040001;
public const int Hello=0x7f040000;
}
}
Her kaynak kimliği, kaynak türüne karşılık gelen iç içe geçmiş bir sınıfın içinde yer alır. Örneğin, Icon.png dosyası projeye eklendiğinde Xamarin.Android sınıfını güncelleştirdi Resource
ve içinde adlı Icon
bir sabit ile adlı Drawable
iç içe bir sınıf oluşturdu.
Bu, Icon.png dosyasının kodda olarak Resource.Drawable.Icon
başvurulmasını sağlar. Xamarin.Android Resource
tarafından yapılan değişikliklerin üzerine yazılacağından, sınıf el ile düzenlenmemelidir.
Kaynaklara program aracılığıyla (kod içinde) başvururken, kaynaklara aşağıdaki söz dizimini kullanan Kaynaklar sınıf hiyerarşisi aracılığıyla erişilebilir:
[<PackageName>.]Resource.<ResourceType>.<ResourceName>
PackageName – Kaynağı sağlayan ve yalnızca diğer paketlerden kaynaklar kullanıldığında gerekli olan paket.
ResourceType : Bu, yukarıda açıklanan Resource sınıfı içinde yer alan iç içe geçmiş kaynak türüdür.
Kaynak Adı : Bu, kaynağın dosya adıdır (uzantı olmadan) veya bir XML öğesindeki kaynaklar için android:name özniteliğinin değeridir.
XML'den Kaynaklara Başvurma
XML dosyasındaki kaynaklara aşağıdaki özel bir söz dizimi ile erişilir:
@[<PackageName>:]<ResourceType>/<ResourceName>
PackageName – kaynağı sağlayan ve yalnızca diğer paketlerden kaynaklar kullanıldığında gerekli olan pakettir.
ResourceType : Bu, Resource sınıfı içindeki iç içe geçmiş kaynak türüdür.
Kaynak Adı – bu, kaynağın dosya adıdır (dosya türü uzantısı olmadan ) veya xml öğesindeki kaynakların özniteliğinin
android:name
değeridir.
Örneğin Main.axml düzen dosyasının içeriği aşağıdaki gibidir:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView android:id="@+id/myImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/flag" />
</LinearLayout>
Bu örnekte flag adlı çizilebilir bir kaynak gerektiren bir ImageView
örneği vardır. ImageView
özniteliği src
olarak @drawable/flag
ayarlanmıştır. Etkinlik başladığında Android, flag.png adlı bir dosya için Resource/Drawable dizinine bakar (dosya uzantısı flag.jpg gibi başka bir görüntü biçimi olabilir) ve bu dosyayı yükleyip içinde ImageView
görüntüler.
Bu uygulama çalıştırıldığında aşağıdaki görüntüye benzer olacaktır: