Diğer kaynak türleri

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> öğesinin name 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:
<resources>
Zorunlu. Bu, kök düğümdür.

Özellik yok.

<bool>
Boole değeri: true veya false.

Özellikler:

name
Dize. Bool değerinin adı. Bu, kaynak kimliği olarak kullanılır.
ö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> öğesinin name 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:
<resources>
Zorunlu. Bu, kök düğümdür.

Özellik yok.

<color>
Onaltılık olarak ifade edilen bir renk.

Özellikler:

name
Dize. Rengin adı. Bu, kaynak kimliği olarak kullanılır.
ö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> öğesinin name 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:
<resources>
Zorunlu. Bu, kök düğümdür.

Özellik yok.

<dimen>
Dümen işareti ve ardından bir ölçü birimi (dp, sp, pt, px, mm, in) ile gösterilen boyut.

Özellikler:

name
Dize. Boyut için bir ad. Bu, kaynak kimliği olarak kullanılır.
ö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:
<resources>
Zorunlu. Bu, kök düğümdür.

Özellik yok.

<item>
Benzersiz bir kimlik tanımlar. Değer almaz, yalnızca nitelikler kabul edilir.

Özellikler:

type
"id" olmalıdır.
name
Dize. Kimlik için benzersiz bir ad.
ö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 buradaki android:id değeri, kimlik referansındaki artı işaretini içermez. Artı işaretini kullanarak bir XML kaynağında android: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> öğesinin name 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:
<resources>
Zorunlu. Bu, kök düğümdür.

Özellik yok.

<integer>
Bir tam sayı.

Özellikler:

name
Dize. Tam sayı için bir ad. Bu, kaynak kimliği olarak kullanılır.
ö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> öğesinin name 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:
<resources>
Zorunlu. Bu, kök düğümdür.

Özellik yok.

<integer-array>
Tam sayı dizisi tanımlar. Bir veya daha fazla alt <item> öğesi içerir.

Özellikler:

android:name
Dize. Dizi için bir ad. Bu ad, diziye referansta bulunmak için kaynak kimliği olarak kullanılır.
<item>
Bir tam sayı. Değer, başka bir tam sayı kaynağına başvuru olabilir. Bir <integer-array> öğesinin alt öğesi olmalıdır.

Özellik yok.

ö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> öğesinin name 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:
<resources>
Zorunlu. Bu, kök düğümdür.

Özellik yok.

<array>
Dizi tanımlar. Bir veya daha fazla alt <item> öğesi içerir.

Özellikler:

android:name
Dize. Dizi için bir ad. Bu ad, diziye referansta bulunmak için kaynak kimliği olarak kullanılır.
<item>
Genel bir kaynak. Değer, bir kaynağa referans veya basit bir veri türü olabilir. Bir <array> öğesinin alt öğesi olmalıdır.

Özellik yok.

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