ColorStateList
XML'de tanımlayabileceğiniz ve ihtiyacınıza göre renkleri değiştiren bir renk olarak uygulayabileceğiniz bir nesnedir
View
nesnesinin durumu
için de geçerli. Örneğin, Button
widget'ı birkaç durumdan birinde olabilir: basılmış, odaklanılmış veya hiçbiri. Bir renk durumu listesi kullanarak
her eyalet için farklı bir renk sağlayabilirsiniz.
Durum listesini bir XML dosyasında açıklarsınız. Her renk, tek bir <selector>
öğesinin içindeki bir <item>
öğesinde tanımlanır. Her <item>
ürünün kullanıldığı durumu açıklayan çeşitli özellikler kullanır.
Her durum değişikliği sırasında, durum listesi yukarıdan aşağıya ve
eşleşmesini ifade eder. Seçim "en iyi"ye göre değil
, daha çok eyaletin minimum ölçütlerini karşılayan ilk öğedir.
Not: Statik renk kaynağı sağlamak istiyorsanız
basit color değerini kullanın.
- dosya konumu:
res/color/filename.xml
Dosya adı, kaynak kimliği olarak kullanılır.
- derlenen kaynak veri türü:
- Kaynak işaretçisini bir
ColorStateList
- kaynak referansı:
- .
Java'da:
R.color.filename
XML'de: @[package:]color/filename
- söz dizimi:
-
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:color="hex_color"
android:lStar="floating_point_value"
android:state_pressed=["true" | "false"]
android:state_focused=["true" | "false"]
android:state_selected=["true" | "false"]
android:state_checkable=["true" | "false"]
android:state_checked=["true" | "false"]
android:state_enabled=["true" | "false"]
android:state_window_focused=["true" | "false"] />
</selector>
- öğeler:
-
<selector>
- Zorunlu. Bu, kök öğedir. Bir veya daha fazla
<item>
öğesi içerir.
Özellikler:
xmlns:android
- Dize. Zorunludur. Aşağıdaki gibi XML ad alanını tanımlar:
"http://schemas.android.com/apk/res/android"
<item>
- Özellikleri tarafından açıklandığı gibi, belirli durumlarda kullanılacak rengi tanımlar. Bu bir
<selector>
öğesinin alt öğesidir.
Özellikler:
android:color
- Onaltılık renk. Zorunludur. Renk bir
RGB değeri ve isteğe bağlı alfa kanalı.
Değer her zaman bir pound (#
) karakteriyle başlar, ardından da
Aşağıdaki biçimlerden birinde bulunan Alfa-Kırmızı-Yeşil-Mavi bilgiler:
- RGB
- #ARGB
- #RRGGBB
- #AARRGGBB
android:lStar
- Kayan nokta. İsteğe bağlıdır. Bu özellik, temel rengin algısal parlaklığını değiştirir. Bunun için
0 ile 100 arasında bir kayan nokta değeri veya bu şekilde çözümlenen bir tema özelliği ekleyin. Öğenin
genel renk, taban rengi erişilebilirlik açısından uygun bir renk alanına dönüştürülerek hesaplanır
ve L* değerini
lStar
özelliğinde belirtilen değere ayarlar.
Örnek: android:lStar="50"
android:state_pressed
- Boole. Bu öğe, nesneye dokunulduğunda (ör. bir düğmeye dokunduğunuzda) kullanılırsa
"true"
dokunulduğunda veya tıklandığı zaman. Bu öğe varsayılan olarak dokunulmamış durumda kullanılıyorsa "false"
değeridir.
android:state_focused
- Boole. Bu öğe nesneye odaklanıldığında (ör. bir düğme gerektiğinde) kullanılırsa
"true"
hareket topu veya D-pad kullanılarak vurgulanır. Bu öğe varsayılan olarak kullanılıyorsa "false"
değeridir.
bir durumu anlatır mısınız?”
diye soruldu.
android:state_selected
- Boole.
"true"
Bu öğe, nesne seçildiğinde kullanılırsa (örneğin, bir öğe
sekmesi açıldı. Nesne seçilmediğinde bu öğe kullanıldıysa "false"
değeridir.
android:state_checkable
- Boole. Nesne kontrol edilebilir olduğunda bu öğe kullanılırsa
"true"
. Bu durumda saat "false"
öğe, nesne kontrol edilebilir olmadığında kullanılır. Yalnızca nesne şu durumlarda yararlıdır:
bir widget'ın üzerine gelin.
android:state_checked
- Boole. Nesne kontrol edildiğinde bu öğe kullanılırsa
"true"
. Bu durumda saat "false"
nesnenin seçimi kaldırıldığında kullanılır.
android:state_enabled
- Boole. Nesne etkinken bu öğe kullanılırsa
"true"
Dokunma veya tıklama etkinlikleri alma. Nesne devre dışı bırakıldığında kullanılıyorsa "false"
değeridir.
android:state_window_focused
- Boole. Uygulama penceresine odaklanıldığında bu öğe kullanılırsa
"true"
yani
o uygulama ön plandadır. Uygulama sırasında bu öğe kullanılıyorsa "false"
pencerenin odak noktası yok (örneğin, bildirim gölgesinin aşağı çekilmesi veya bir iletişim kutusu gösterilmesi).
Not: Durum listesindeki ilk öğe,
öğesinin geçerli durumuyla eşleşir. Listedeki ilk öğe
yoksa önceki durum özelliklerinden hiçbiri yoksa her zaman geçerli olur. Bu nedenle,
varsayılan değer son olarak ayarlanır.
- örnek:
- XML dosyası
res/color/button_text.xml
itibarıyla kaydedildi:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:color="#ffff0000"/> <!-- pressed -->
<item android:state_focused="true"
android:color="#ff0000ff"/> <!-- focused -->
<item android:color="#ff000000"/> <!-- default -->
</selector>
Aşağıdaki düzen XML'i, renk listesini bir View
öğesine uygular:
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/button_text"
android:textColor="@color/button_text" />
- ayrıca bkz.:
-