Bu sayfada, harici hale getirebileceğiniz aşağıdaki kaynak türleri tanımlanmaktadır:
- Bool
- Boole değeri taşıyan XML kaynağı.
- Renk
- Renk değeri (onaltılık renk) içeren XML kaynağı.
- Boyut
- Bir boyut değeri (ölçü birimiyle) taşıyan XML kaynağı.
- ID
- Uygulama kaynakları ve uygulamalar için benzersiz bir tanımlayıcı sağlayan XML kaynağı bileşenlerine ayıralım.
- Tam sayı
- Tam sayı değeri taşıyan XML kaynağı.
- Tam sayı dizisi
- Tam sayı dizisi sağlayan XML kaynağı.
- Türetilen dizi
TypedArray
sağlayan XML kaynağı kullanılabilir.
Bool Dili
XML'de tanımlanan boole değeri.
Not: Bool, referans verilen basit bir kaynaktır
XML dosyasının adını değil, name
özelliğinde sağlanan değer kullanılır. Farklı
Örneğin, Boole kaynaklarını diğer basit kaynaklarla tek bir XML dosyasında birleştirebilirsiniz.
bir <resources>
öğesinin altında.
- dosya konumu:
Dosya adı rastgele seçilmiştir.<bool>
öğesininname
değeri kaynak olarak kullanılıyor Kimlik.- kaynak referansı:
- .
Java'da:
R.bool.bool_name
XML'de:@[package:]bool/bool_name
- söz dizimi:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <bool name="bool_name" >[true | false]</bool> </resources>
- öğeler:
- örnek:
- XML dosyası
res/values-small/bools.xml
itibarıyla kaydedildi:<?xml version="1.0" encoding="utf-8"?> <resources> <bool name="screen_small">true</bool> <bool name="adjust_view_bounds">true</bool> </resources>
Aşağıdaki uygulama kodu boole değerini alır:
Kotlin
val screenIsSmall: Boolean =
resources
.getBoolean
(R.bool.screen_small)Java
Resources res =
getResources()
; boolean screenIsSmall = res.getBoolean
(R.bool.screen_small);Aşağıdaki düzen XML'inde bir özellik için boole kullanılır:
<ImageView android:layout_height="fill_parent" android:layout_width="fill_parent" android:src="@drawable/logo" android:adjustViewBounds="@bool/adjust_view_bounds" />
res/values/filename.xml
Renk
XML'de tanımlanan bir renk değeri.
Renk, bir RGB değeri ve alfa kanalı kullanılarak belirtilir. Bir renk kaynağı kullanabilirsiniz
onaltılık renk değeri kabul eden tüm yerler. Bir
XML'de android:drawable="@color/green"
gibi çekilebilir bir kaynak beklenir.
Değer her zaman bir kare (#) karakteriyle başlar ve ardından Aşağıdaki biçimlerden birinde bulunan Alfa-Kırmızı-Yeşil-Mavi bilgiler:
- RGB
- #ARGB
- #RRGGBB
- #AARRGGBB
Not: Renk, referans verilen basit bir kaynaktır
XML dosyasının adını değil, name
özelliğinde sağlanan değer kullanılır. Farklı
renk kaynaklarını diğer basit kaynaklarla tek bir XML dosyasında birleştirebilirsiniz.
bir <resources>
öğesinin altında.
- dosya konumu:
Dosya adı rastgele seçilmiştir.<color>
öğesininname
, kaynak kimliği.- kaynak referansı:
- .
Java'da:
R.color.color_name
XML'de:@[package:]color/color_name
- söz dizimi:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="color_name" >hex_color</color> </resources>
- öğeler:
- örnek:
- XML dosyası
res/values/colors.xml
itibarıyla kaydedildi:<?xml version="1.0" encoding="utf-8"?> <resources> <color name="opaque_red">#f00</color> <color name="translucent_red">#80ff0000</color> </resources>
Aşağıdaki uygulama kodu renk kaynağını alır:
Kotlin
val color: Int =
resources
.getColor
(R.color.opaque_red)Java
Resources res =
getResources()
; int color = res.getColor
(R.color.opaque_red);Aşağıdaki düzen XML'i, rengi bir özelliğe uygular:
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/translucent_red" android:text="Hello"/>
res/values/colors.xml
Boyut
XML'de tanımlanan bir boyut değeri. Boyut bir sayı ve ardından 10 piksel, 2 inç veya 5 sp gibi bir ölçü birimiyle belirtilir. Aşağıdaki ölçü birimleri Android tarafından desteklenmektedir:
dp
- Yoğunluktan bağımsız pikseller: piksellerin fiziksel yoğunluğuna dayalı olarak soyut bir birim
tıklayın. Bu birimler, 1 dp'nin kabaca eşit olduğu 160 dpi (inç başına nokta) ekranıyla ilişkilidir.
-1 piksel. Daha yüksek yoğunluklu bir ekranda çalışırken 1 dp çizmek için kullanılan piksel sayısı artırılır
ekranın dpi'sine uygun bir faktöre göre çarpın.
Benzer şekilde, daha düşük yoğunluklu bir ekranda 1 dp için kullanılan piksel sayısı küçültülür. dps'nin piksele oranı, ekran yoğunluğuna göre değişir. ancak doğrudan orantılı olması gerekmez. Piksel birimleri yerine dp birimleri kullanmak bir çözümdür farklı ekran yoğunluklarına göre düzgün şekilde yeniden boyutlandırabilmenizi sağlar. Farklı platformlarda kullanıcı arayüzü öğelerinizin gerçek boyutları için tutarlılık sağlar. cihazlar.
sp
- Ölçekten Bağımsız Pikseller: Bu dp birimine benzer ancak kullanıcının yazı tipine göre ölçeklendirilir boyut tercihini görebilirsiniz. Yazı tipi boyutlarını belirtirken bu birimi kullanmanız önerilir; böylece yazı tipi boyutları ayarlanır hem ekran yoğunluğu hem de kullanıcının tercihine göre ayarlanır.
pt
- Puan: Ekranın fiziksel boyutuna göre 1/72 inç, ekranın 72 dpi yoğunlukta olduğu varsayılır.
px
- Pikseller: Ekrandaki gerçek piksellere karşılık gelir. Bu birimi kullanmanız önerilmez çünkü gerçek gösterim cihaza göre değişebilir. Farklı cihazların piksel sayıları farklı olabilir ve ekranda daha fazla veya daha az toplam piksele sahip olabilir.
mm
- Milimetre: Ekranın fiziksel boyutuna bağlıdır.
in
- İnç: Ekranın fiziksel boyutuna bağlıdır.
Not: Boyut, referans verilen basit bir kaynaktır
XML dosyasının adını değil, name
özelliğinde sağlanan değer kullanılır. Farklı
Örneğin, boyut kaynaklarını diğer basit kaynaklarla tek bir XML dosyasında birleştirebilirsiniz.
bir <resources>
öğesinin altında.
- dosya konumu:
Dosya adı rastgele seçilmiştir.<dimen>
öğesininname
, kaynak kimliği.- kaynak referansı:
- .
Java'da:
R.dimen.dimension_name
XML'de:@[package:]dimen/dimension_name
- söz dizimi:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="dimension_name" >dimension</dimen> </resources>
- öğeler:
- örnek:
- XML dosyası
res/values/dimens.xml
itibarıyla kaydedildi:<?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="textview_height">25dp</dimen> <dimen name="textview_width">150dp</dimen> <dimen name="ball_radius">30dp</dimen> <dimen name="font_size">16sp</dimen> </resources>
Aşağıdaki uygulama kodu bir boyut alır:
Kotlin
val fontSize: Float =
resources
.getDimension
(R.dimen.font_size)Java
Resources res =
getResources()
; float fontSize = res.getDimension
(R.dimen.font_size);Aşağıdaki düzen XML'i, boyutları özelliklere uygular:
<TextView android:layout_height="@dimen/textview_height" android:layout_width="@dimen/textview_width" android:textSize="@dimen/font_size"/>
res/values/filename.xml
Kimlik
XML'de tanımlanan benzersiz bir kaynak kimliği. <item>
içinde sağladığınız adı kullanarak
öğesi olmadan, Android geliştirici araçları projenizin R.java
sınıfında benzersiz bir tam sayı oluşturur. Bu değeri,
kullanıcı arayüzü düzeninizdeki View
gibi uygulama kaynaklarının tanımlayıcısını
veya uygulama kodunuzda kullanılacak benzersiz bir tam sayı (örneğin, bir iletişim kutusu kimliği veya
sonuç kodu.
Not: Kimlik, referans verilen basit bir kaynaktır
XML dosyasının adını değil, name
özelliğinde sağlanan değer kullanılır. Farklı
Kimlik kaynaklarını diğer basit kaynaklarla tek bir XML dosyasında birleştirebilirsiniz.
bir <resources>
öğesinin altında. Ayrıca, bir kimlik kaynağı
gerçek bir kaynak öğesi: diğer kaynaklara ekleyebileceğiniz veya kullanabileceğiniz benzersiz bir kimliktir
benzersiz bir tam sayı olarak ayarlayın.
- dosya konumu:
Dosya adı rastgele seçilmiştir.- kaynak referansı:
- .
Java'da:
R.id.name
XML'de:@[package:]id/name
- söz dizimi:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <item type="id" name="id_name" /> </resources>
- öğeler:
- örnek:
-
res/values/ids.xml
itibarıyla kaydedilen XML dosyası:<?xml version="1.0" encoding="utf-8"?> <resources> <item type="id" name="button_ok" /> <item type="id" name="dialog_exit" /> </resources>
Aşağıdaki düzen snippet'i,
Button
widget'ı için"button_ok"
kimliğini kullanır:<Button android:id="@id/button_ok" style="@style/button_style" />
Buradaki
android:id
değeri, kimlik referansındaki artı işaretini içermez. çünkü öncekiids.xml
örneğinde tanımlandığı gibi kimlik zaten mevcut. Birandroid:id="@+id/name"
biçimindeki artı işaretini kullanarak bir XML kaynağının kimliğini bu,"name"
kimliğinin henüz mevcut olmadığı ve oluşturulduğu anlamına gelir.Başka bir örnek olarak, aşağıdaki kod snippet'i benzersiz tanımlayıcı olarak
"dialog_exit"
kimliğini kullanır iletişim kutusu için:Kotlin
showDialog
(R.id.dialog_exit)Java
showDialog
(R.id.dialog_exit);Aynı uygulamada, iletişim kutusu oluşturulurken
"dialog_exit"
kimliği karşılaştırılır:Kotlin
override fun
onCreateDialog
(id: Int): Dialog? { return when(id) { R.id.dialog_exit -> { ... } else -> { null } } }Java
protected Dialog
onCreateDialog
(int id) { Dialog dialog; switch(id) { case R.id.dialog_exit: ... break; default: dialog = null; } return dialog; }
res/values/filename.xml
Tam sayı
XML'de tanımlanan bir tam sayı.
Not: Tam sayı, referans verilen basit bir kaynaktır
XML dosyasının adını değil, name
özelliğinde sağlanan değer kullanılır. Farklı
tam sayı kaynaklarını diğer basit kaynaklarla tek bir XML dosyasında birleştirebilirsiniz.
bir <resources>
öğesinin altında.
- dosya konumu:
Dosya adı rastgele seçilmiştir.<integer>
öğesininname
, kaynak kimliği.- kaynak referansı:
- .
Java'da:
R.integer.integer_name
XML'de:@[package:]integer/integer_name
- söz dizimi:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <integer name="integer_name" >integer</integer> </resources>
- öğeler:
- örnek:
-
res/values/integers.xml
itibarıyla kaydedilen XML dosyası:<?xml version="1.0" encoding="utf-8"?> <resources> <integer name="max_speed">75</integer> <integer name="min_speed">5</integer> </resources>
Aşağıdaki uygulama kodu bir tam sayı alır:
Kotlin
val maxSpeed: Int =
resources
.getInteger
(R.integer.max_speed)Java
Resources res =
getResources()
; int maxSpeed = res.getInteger
(R.integer.max_speed);
res/values/filename.xml
Tam sayı dizisi
XML'de tanımlanan bir tam sayı dizisi.
Not: Tam sayı dizisi, referans verilen basit bir kaynaktır
XML dosyasının adını değil, name
özelliğinde sağlanan değer kullanılır. Farklı
tam sayı dizisi kaynaklarını diğer basit kaynaklarla tek bir XML dosyasında birleştirebilirsiniz.
bir <resources>
öğesinin altında.
- dosya konumu:
Dosya adı rastgele seçilmiştir.<integer-array>
öğesininname
, kaynak kimliği.- derlenen kaynak veri türü:
- Kaynak işaretçisi, bir tam sayı dizisidir.
- kaynak referansı:
- .
Java'da:
R.array.integer_array_name
XML'de:@[package:]array/integer_array_name
- söz dizimi:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <integer-array name="integer_array_name"> <item >integer</item> </integer-array> </resources>
- öğeler:
- örnek:
- XML dosyası
res/values/integers.xml
itibarıyla kaydedildi:<?xml version="1.0" encoding="utf-8"?> <resources> <integer-array name="bits"> <item>4</item> <item>8</item> <item>16</item> <item>32</item> </integer-array> </resources>
Aşağıdaki uygulama kodu, tam sayı dizisini alır:
Kotlin
val bits: IntArray =
resources
.getIntArray
(R.array.bits)Java
Resources res =
getResources()
; int[] bits = res.getIntArray
(R.array.bits);
res/values/filename.xml
Türü belirtilmiş dizi
XML'de tanımlanmış bir TypedArray
. Tekliflerinizi otomatikleştirmek ve optimize etmek için
çekilebilir dosyalar gibi diğer
kaynaklardan bir dizi oluşturmak için kullanılır. Dizinin homojen olması gerekmez. Bu nedenle, karma kaynak türleri dizisi oluşturabilirsiniz ancak
veri türlerini doğru şekilde belirleyebilmek için dizide hangi veri türlerinin
ve nerede bulunduğunu bilmek önemlidir.
her öğe TypedArray
sınıfının get...()
yöntemleriyle işlenir.
Not: Türü belirtilmiş bir dizi,
XML dosyasının adını değil, name
özelliğinde sağlanan değer kullanılır. Farklı
Böylece, girilen dizi kaynaklarını diğer basit kaynaklarla tek bir XML dosyasında birleştirebilirsiniz.
bir <resources>
öğesinin altında.
- dosya konumu:
Dosya adı rastgele seçilmiştir.<array>
öğesininname
, kaynak kimliği.- derlenen kaynak veri türü:
- Kaynak işaretçisi bir
TypedArray
. - kaynak referansı:
- .
Java'da:
R.array.array_name
XML'de:@[package:]array/array_name
- söz dizimi:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <array name="integer_array_name"> <item>resource</item> </array> </resources>
- öğeler:
- örnek:
- XML dosyası
res/values/arrays.xml
itibarıyla kaydedildi:<?xml version="1.0" encoding="utf-8"?> <resources> <array name="icons"> <item>@drawable/home</item> <item>@drawable/settings</item> <item>@drawable/logout</item> </array> <array name="colors"> <item>#FFFF0000</item> <item>#FF00FF00</item> <item>#FF0000FF</item> </array> </resources>
Aşağıdaki uygulama kodu her diziyi ve ardından her dizideki ilk girişi alır:
Kotlin
val icons: TypedArray =
resources
.obtainTypedArray
(R.array.icons) val drawable: Drawable = icons.getDrawable
(0) val colors: TypedArray =resources
.obtainTypedArray
(R.array.colors) val color: Int = colors.getColor
(0,0)Java
Resources res =
getResources()
; TypedArray icons = res.obtainTypedArray
(R.array.icons); Drawable drawable = icons.getDrawable
(0); TypedArray colors = res.obtainTypedArray
(R.array.colors); int color = colors.getColor
(0,0);
res/values/filename.xml