Bu sayfada, dışa aktarabileceğ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
- Boyut değeri (ölçüm birimiyle) taşıyan XML kaynağı.
- ID
- Uygulama kaynakları ve bileşenleri için benzersiz tanımlayıcı sağlayan XML kaynağıdır.
- Tam sayı
- Tam sayı değeri taşıyan XML kaynağı.
- Tam sayı dizisi
- Tam sayı dizisi sağlayan XML kaynağı.
- Türü türü dizi
TypedArray
sağlayan XML kaynağı (bunu bir dizi çekilebilir öğe için kullanabilirsiniz).
Boole
XML'de tanımlanan bir boole değeridir.
Not: Bool, XML dosyasının adı değil, name
özelliğinde sağlanan değer kullanılarak referans verilen basit bir kaynaktır. Böylece Bool kaynaklarını, tek bir <resources>
öğesi altında bir XML dosyasında diğer basit kaynaklarla birleştirebilirsiniz.
- dosya konumu:
res/values/filename.xml
Dosya adı rastgeledir.<bool>
öğesininname
değeri, kaynak kimliği olarak kullanılır.- 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ının
res/values-small/bools.xml
konumuna 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'si, bir özellik için boole'yi kullanır:
<ImageView android:layout_height="fill_parent" android:layout_width="fill_parent" android:src="@drawable/logo" android:adjustViewBounds="@bool/adjust_view_bounds" />
Renk
XML'de tanımlanan bir renk değeri.
Renk, bir RGB değeri ve alfa kanalı kullanılarak belirtilir. Onaltılık renk değerini kabul eden herhangi bir yerde bir renk kaynağını kullanabilirsiniz. XML'de android:drawable="@color/green"
gibi bir çekilebilir kaynak beklendiğinde de renk kaynağını kullanabilirsiniz.
Değer her zaman bir kare (#) karakteriyle başlar ve onun ardından aşağıdaki biçimlerden birinde Alfa-Kırmızı-Yeşil-Mavi bilgileri gelir:
- RGB
- #ARGB
- #RRGGBB
- #AARRGGBB
Not: Renk, XML dosyasının adı değil, name
özelliğinde sağlanan değer kullanılarak referans verilen basit bir kaynaktır. Bu nedenle, bir <resources>
öğesi altında tek bir XML dosyasında renk kaynaklarını diğer basit kaynaklarla birleştirebilirsiniz.
- dosya konumu:
res/values/colors.xml
Dosya adı rastgeledir.<color>
öğesininname
değeri, kaynak kimliği olarak kullanılır.- 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ının
res/values/colors.xml
konumuna 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'si, rengi bir özelliğe uygular:
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/translucent_red" android:text="Hello"/>
Boyut
XML'de tanımlanan bir boyut değeridir. Boyut, bir sayı ve ardından 10 piksel, 2 inç veya 5 sp gibi bir ölçü birimiyle belirtilir. Android aşağıdaki ölçü birimlerini destekler:
dp
- Yoğunluktan bağımsız pikseller: Ekranın fiziksel yoğunluğuna dayalı soyut bir birim. Bu birimler, 1 dp yaklaşık 1 piksele eşit olan 160 dpi (inç başına nokta) ekranla ilişkilidir. Daha yüksek yoğunluklu bir ekranda çalışırken, 1 dp çizmek için kullanılan piksel sayısı, ekranın dpi'sine uygun bir faktöre göre ölçeklendirilir.
Benzer şekilde, daha düşük yoğunluklu bir ekranda 1 dp için kullanılan piksel sayısı küçültülür. dps'nin piksellere oranı ekran yoğunluğuna göre değişir, ancak bu her zaman doğru orantılı değildir. Piksel birimleri yerine dp birimlerini kullanmak, düzeninizdeki görünüm boyutlarının, farklı ekran yoğunlukları için doğru bir şekilde yeniden boyutlandırılmasını sağlamanın bir çözümüdür. Farklı cihazlardaki kullanıcı arayüzü öğelerinizin gerçek boyutları için tutarlılık sağlar.
sp
- Ölçekten Bağımsız Pikseller: Bu, dp birimi gibidir ancak kullanıcının yazı tipi boyutu tercihine göre de ölçeklendirilir. Yazı tipi boyutlarını belirlerken bu birimi kullanmanız önerilir. Böylece bu birim, hem ekran yoğunluğuna hem de kullanıcının tercihine göre ayarlanır.
pt
- Noktalar: Ekranın fiziksel boyutuna göre ekranın 72 dpi yoğunlukta olduğu varsayılarak 1/72 inç'in 1/72'si.
px
- Piksel: Ekrandaki gerçek piksellere karşılık gelir. Gerçek temsil cihazlar arasında farklılık gösterebileceğinden bu birimi kullanmanızı önermeyiz. Farklı cihazların inç başına piksel sayısı farklı olabilir ve ekranda bulunan toplam piksel sayısı daha fazla veya daha az olabilir.
mm
- Milimetre: Ekranın fiziksel boyutuna göre.
in
- İnç: Ekranın fiziksel boyutuna göre.
Not: Boyut, XML dosyasının adı değil, name
özelliğinde sağlanan değer kullanılarak referans verilen basit bir kaynaktır. Bu nedenle, bir XML dosyasında bir <resources>
öğesi altında boyut kaynaklarını diğer basit kaynaklarla birleştirebilirsiniz.
- dosya konumu:
res/values/filename.xml
Dosya adı rastgeledir.<dimen>
öğesininname
değeri, kaynak kimliği olarak kullanılır.- 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ının
res/values/dimens.xml
konumuna 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 getirir:
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"/>
ID
XML'de tanımlanan benzersiz bir kaynak kimliği. Android geliştirici araçları, <item>
öğesinde sağladığınız adı kullanarak projenizin R.java
sınıfında benzersiz bir tam sayı oluşturur. Bu tam sayıyı, uygulama kaynakları için tanımlayıcı (ör. kullanıcı arayüzü düzeninizdeki View
) veya uygulama kodunuzda kullanmak üzere benzersiz bir tam sayı (ör. iletişim kutusu kimliği ya da sonuç kodu) olarak kullanabilirsiniz.
Not: Kimlik, XML dosyasının adı değil, name
özelliğinde sağlanan değer kullanılarak referans verilen basit bir kaynaktır. Böylece kimlik kaynaklarını, bir <resources>
öğesi altında bir XML dosyasında diğer basit kaynaklarla birleştirebilirsiniz. Ayrıca kimlik kaynağı, gerçek bir kaynak öğesine başvuruda bulunmaz. Diğer kaynaklara ekleyebileceğiniz veya uygulamanızda benzersiz bir tam sayı olarak kullanabileceğiniz benzersiz bir kimliktir.
- dosya konumu:
res/values/filename.xml
Dosya adı rastgeledir.- 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
konumuna 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, bir
Button
widget'ı için"button_ok"
kimliğini kullanır:<Button android:id="@id/button_ok" style="@style/button_style" />
Önceki
ids.xml
örneğinde tanımlandığı gibi kimlik zaten mevcut olduğundan buradakiandroid:id
değeri, kimlik referansındaki artı işaretini içermez. Artı işaretini kullanarak bir XML kaynağındaandroid:id="@+id/name"
biçiminde bir kimlik belirtmeniz,"name"
kimliğinin henüz bulunmadığı ve oluşturulduğu anlamına gelir.Başka bir örnek olarak, aşağıdaki kod snippet'i bir iletişim kutusu için benzersiz tanımlayıcı olarak
"dialog_exit"
kimliğini kullanır: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; }
Tam sayı
XML'de tanımlanan bir tam sayı.
Not: Tam sayı, XML dosyasının adı değil, name
özelliğinde sağlanan değer kullanılarak referans verilen basit bir kaynaktır. Bu nedenle, tam sayı kaynaklarını diğer basit kaynaklarla tek bir XML dosyasında, bir <resources>
öğesi altında birleştirebilirsiniz.
- dosya konumu:
res/values/filename.xml
Dosya adı rastgeledir.<integer>
öğesininname
değeri, kaynak kimliği olarak kullanılır.- 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
konumuna 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);
Tam sayı dizisi
XML'de tanımlanan bir tam sayı dizisi.
Not: Tam sayı dizisi, XML dosyasının adı değil, name
özelliğinde sağlanan değer kullanılarak başvurulan basit bir kaynaktır. Bu nedenle, tam sayı dizisi kaynaklarını diğer basit kaynaklarla tek bir XML dosyasında, bir <resources>
öğesi altında birleştirebilirsiniz.
- dosya konumu:
res/values/filename.xml
Dosya adı rastgeledir.<integer-array>
öğesininname
değeri, kaynak kimliği olarak kullanılır.- derlenmiş kaynak veri türü:
- Tam sayı dizisine yönlendiren kaynak işaretçisi.
- 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ının
res/values/integers.xml
konumuna 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);
Yazılan dizi
XML'de tanımlanmış bir TypedArray
. Çekilebilir malzeme gibi başka kaynaklar dizisi oluşturmak için bunu kullanabilirsiniz. Dizinin homojen olması gerekmez. Bu nedenle, karma kaynak türleri dizisi oluşturabilirsiniz, ancak veri türlerinin dizide ne ve nerede olduğunu unutmayın. Böylece her öğeyi TypedArray
sınıfının get...()
yöntemleriyle düzgün bir şekilde elde edebilirsiniz.
Not: Yazılan dizi, XML dosyasının adı değil, name
özelliğinde sağlanan değer kullanılarak başvurulan basit bir kaynaktır. Bu nedenle, yazılan dizi kaynaklarını diğer basit kaynaklarla tek bir XML dosyasında, bir <resources>
öğesi altında birleştirebilirsiniz.
- dosya konumu:
res/values/filename.xml
Dosya adı rastgeledir.<array>
öğesininname
değeri, kaynak kimliği olarak kullanılır.- derlenmiş kaynak veri türü:
TypedArray
öğesinin kaynak işaretçisi.- 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ının
res/values/arrays.xml
konumuna 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 daha sonra, her dizideki ilk girişi elde eder:
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);