Renk durumu listesi kaynağı

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.: