Çekilebilir kaynaklar

Çekilebilir kaynak, ekrana çizilebilecek bir grafik için genel bir kavramdır ve getDrawable(int) gibi API'lerle alabilir veya android:drawable ve android:icon gibi özelliklere sahip başka bir XML kaynağına ekleyin. Birkaç çekilebilir öğe türü vardır:

Bit eşlem dosyası
Bit eşlem grafik dosyası (PNG, WEBP, JPG veya GIF). BitmapDrawable oluşturur.
Dokuz yama dosyası
Resimlerin içeriğe göre yeniden boyutlandırılabileceği bölgeler içeren bir PNG dosyası (.9.png). NinePatchDrawable oluşturur.
Katman listesi
Diğer çekilebilir öğeleri yöneten çekilebilir. Bunlar dizi sırasında çizilir, bu nedenle en büyük endeksli öğe en üste çizilir. LayerDrawable oluşturur.
Eyalet listesi
Farklı bit eşlem grafiklerine referans veren bir XML dosyası kullanabilirsiniz. Örneğin, bir düğmeye dokunulduğunda farklı bir resim kullanmak için. StateListDrawable oluşturur.
Seviye listesi
Her biri alternatif çekilebilir öğeleri yöneten bir çekilebilirliği tanımlayan XML dosyası bir maksimum sayısal değer atar. LevelListDrawable oluşturur.
Geçiş çizimi
İki çizili kaynak arasında geçiş yapabilen bir çekilebilirliği tanımlayan XML dosyası. TransitionDrawable oluşturur.
İç içe doğru çekilebilir
Belirli bir uzaklığa göre başka bir çekilebilir içeriği ekleyen XML dosyası. Bu özellik, görünümün gerçek boyutundan daha küçük bir arka plan çekilebilirliği gerektiğinde yararlı olur sınırlar.
Çekmeceli klip
Bir çekilebilir sözcüğünü tanımlayan ve bu çekilebilir öğenin Mevcut düzey değeri. ClipDrawable oluşturur.
Çekilebilir ölçekleme
Şu boyuta göre başka bir çekilebilir öğenin boyutunu değiştiren bir çekilebilirliği tanımlayan XML dosyası: Mevcut düzey değeri. ScaleDrawable oluşturur
Şekil çekilebilir.
Renkler ve gradyanlar dahil olmak üzere geometrik bir şekli tanımlayan XML dosyası. GradientDrawable oluşturur.

Nasıl yapıldığını AnimationDrawable oluşturun, Animasyon kaynakları dokümanını inceleyin.

Not: Renk kaynağı da XML’de çekilebilir olarak kullanılır. Örneğin, bir eyalet listesi oluştururken Paintable'ı seçerseniz android:drawable özelliği (android:drawable="@color/green") için bir renk kaynağına başvurabilirsiniz.

Bit eşlem

Bit eşlem resmi. Android, şu biçimlerdeki bit eşlem dosyalarını destekler: PNG (tercih edilen), WEBP (tercih edilir, API düzeyi 17 veya üstü gerekir), JPG (kabul edilebilir), GIF (önerilmez).

Kaynak kimliği olarak dosya adını kullanıp bit eşlem dosyasına doğrudan başvurabilir veya XML'de takma ad kaynak kimliği.

Not: Bit eşlem dosyaları, kayıpsız değer ile otomatik olarak optimize edilebilir. resim sıkıştırma işlemi sırasında aapt aracı kullanılabilir. Örneğin, örneğin, 256'dan fazla renk gerektirmeyen gerçek renkli bir PNG dosyası 8 bit'e dönüştürülebilir PNG. Böylece daha az resim gerektiren, eşit kalitede bir resim elde edilir. hafızada bulabilirsiniz.

Bu nedenle, bu dizine yerleştirilen görüntü ikili programlarının derleme sırasında değişebileceğini unutmayın. Eğer bir resmi bit eşlem haline getirmek için bit akış olarak okumayı planlıyorsanız, resimlerinizi Bunun yerine, optimize edilmeyen res/raw/ klasörü gösterilir.

Bit eşlem dosyası

Bit eşlem bir PNG, WEBP, JPG veya GIF dosyasıdır. Android bir Drawable oluşturur res/drawable/ dizinine kaydettiğinizde bu dosyalardan herhangi biri için bir kaynak oluşturun.

dosya konumu:
res/drawable/filename.png (.png, .webp, .jpg veya .gif)
Dosya adı, kaynak kimliğidir
derlenen kaynak veri türü:
Kaynak işaretçisini bir BitmapDrawable
kaynak referansı:
. Java'da: R.drawable.filename
XML'de: @[package:]drawable/filename
örnek:
res/drawable/myimage.png konumuna kaydedilen bir resimle, bu düzen XML'i geçerli olur bir görünüm oluşturabilir:
<ImageView
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:src="@drawable/myimage" />

Aşağıdaki uygulama kodu, görüntüyü Drawable biçiminde alır:

Kotlin

val drawable: Drawable? = ResourcesCompat.getDrawable(resources, R.drawable.myimage, null)

Java

Resources res = getResources();
Drawable drawable = ResourcesCompat.getDrawable(res, R.drawable.myimage, null);
ayrıca bkz.:

XML bit eşlemi

XML bit eşlemi, XML'de tanımlı ve bir bit eşlem dosyasına işaret eden kaynaktır. Bu efekt, alan adının ham bit eşlem dosyası. XML, bit eşlem için titreme ve parçalama gibi ek özellikler belirtebilir.

Not: <bitmap> öğesini şunun alt öğesi olarak kullanabilirsiniz: <item> öğesidir. Örneğin, örneğin bir durum listesi veya katman listesi oluştururken, android:drawable öğesini hariç tutabilirsiniz özelliğini bir <item> öğesinden kaldırıp bu öğenin içine bir <bitmap> yerleştirin çekilebilir öğeyi tanımlayan bir kod içerir.

dosya konumu:
res/drawable/filename.xml

Dosya adı, kaynak kimliğidir
derlenen kaynak veri türü:
Kaynak işaretçisini bir BitmapDrawable
kaynak referansı:
. Java'da: R.drawable.filename
XML'de: @[package:]drawable/filename
söz dizimi:
<?xml version="1.0" encoding="utf-8"?>
<bitmap
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@[package:]drawable/drawable_resource"
    android:antialias=["true" | "false"]
    android:dither=["true" | "false"]
    android:filter=["true" | "false"]
    android:gravity=["top" | "bottom" | "left" | "right" | "center_vertical" |
                      "fill_vertical" | "center_horizontal" | "fill_horizontal" |
                      "center" | "fill" | "clip_vertical" | "clip_horizontal"]
    android:mipMap=["true" | "false"]
    android:tileMode=["disabled" | "clamp" | "repeat" | "mirror"] />
öğeler:
<bitmap>
Zorunlu. Bit eşlem kaynağını ve özelliklerini tanımlar.

Özellikler:

xmlns:android
Dize. Şu olması gereken XML ad alanını tanımlar: "http://schemas.android.com/apk/res/android" Bu yalnızca <bitmap>, kök öğedir. <bitmap>, <item> içine yerleştirilmiştir.
android:src
Çekilebilir kaynak. Zorunludur. Çekilebilir öğeye referans verme gösterir.
android:antialias
Boole. Düzeltmeyi etkinleştirir veya devre dışı bırakır.
android:dither
Boole. Bit eşlem çalışmazsa bit eşlem için titretmeyi etkinleştirir veya devre dışı bırakır ekranla aynı piksel yapılandırmasına sahip olmalıdır (örneğin, RGB 565'te ARGB 8888 bit eşlemi). tıklayın.
android:filter
Boole. Bit eşlem filtrelemeyi etkinleştirir veya devre dışı bırakır. Filtreleme, bit eşlem, görünümünü yumuşatmak için küçültülür veya uzatılır.
android:gravity
Anahtar kelime. Bit eşlemin yer çekimini tanımlar. Yer çekimi, bir öğeyi bit eşlem kapsayıcıdan küçükse çekilebilir öğeyi kapsayıcıya yerleştirin.

| ile ayrılmış aşağıdaki sabit değerlerden biri veya daha fazlası olmalıdır:

DeğerAçıklama
top Nesneyi, boyutunu değiştirmeden kapsayıcının üst kısmına yerleştirin.
bottom Nesneyi, boyutunu değiştirmeden kabının alt kısmına yerleştirin.
left Nesneyi, boyutunu değiştirmeden kapsayıcının sol kenarına yerleştirin.
right Nesneyi, boyutunu değiştirmeden kapsayıcının sağ kenarına yerleştirin.
center_vertical Nesneyi, boyutunu değiştirmeden kapsayıcının dikey olarak ortasına yerleştirin.
fill_vertical Gerekirse nesnenin dikey boyutunu büyüterek kapsayıcıyı tamamen doldurmasını sağlayın.
center_horizontal Nesneyi, boyutunu değiştirmeden kapsayıcının yatay merkezine yerleştirin.
fill_horizontal Gerekirse nesnenin yatay boyutunu büyüterek kapsayıcıyı tamamen doldurmasını sağlayın.
center Nesneyi hem dikey hem de yatay eksende kapsayıcısının ortasına yerleştirin boyutunu değiştiriyor.
fill Gerekiyorsa nesnenin yatay ve dikey boyutunu büyüterek emin olun. Bu, varsayılan ayardır.
clip_vertical Alt ve/veya alt kenarların kırpılacağı şekilde ayarlanabilecek ek seçenek görebilirsiniz. Klip dikey yer çekimine dayalıdır: Üstteki yer çekimi alt kenar, alt yerçekimi üst kenarı klipslir ve iki kenarın ikisini de klip tutmaz.
clip_horizontal Alt öğenin sol ve/veya sağ kenarlarının kırpılacağı şekilde ayarlanabilecek ek seçenek görebilirsiniz. Klip yatay yer çekimine dayalıdır: sol yer çekimi klipleri sağ kenarını temel alıyorsa, sağ yerçekimi sol kenarı klipslir ve iki kenarın ikisini de klip tutmaz.
android:mipMap
Boole. Mipmap ipucunu etkinleştirir veya devre dışı bırakır. Daha fazla bilgi için setHasMipMap() belgesine göz atın. False varsayılan değerdir.
android:tileMode
Anahtar kelime. Kart modunu tanımlar. Döşeme modu etkinleştirildiğinde bit eşlem tekrarlanır. Kart modu etkinleştirildiğinde yerçekimi yoksayılır.

Aşağıdaki sabit değerlerden biri olmalıdır:

DeğerAçıklama
disabled Bit eşlemi döşeyin. Bu, varsayılan değerdir.
clamp Gölgelendirici orijinal sınırlarının dışına çiziyorsa kenar rengini çoğalt
repeat Gölgelendirici resmini yatay ve dikey olarak tekrarlayın.
mirror Gölgelendirici görüntüsünü yatay ve dikey olarak yineleyin. bitişik resimler her zaman eklidir.
örnek:
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/icon"
    android:tileMode="repeat" />
ayrıca bkz.:

Dokuz Bant

NinePatch, uzatılabilir bölgeler tanımlayabileceğiniz bir PNG resmidir. (görünümdeki içerik normal resim sınırlarını aştığında) Android'in ölçeklendirilmesine olanak tanır. Siz genellikle bu tür bir resmi, en az bir boyutu ayarlanmış bir görünümün arka planı olarak atarız "wrap_content" numaralı telefona.

Görüntü içeriği barındıracak şekilde büyüdüğünde, dokuz noktalı resim görünümün boyutuna uyacak şekilde ölçeklendirilir. Dokuz yamalı bir resmin kullanımına örnek olarak Android'in standart Button widget'ı tarafından kullanılan ve metni (veya resmi) düğmenin içine yerleştirin.

Normal bit eşlemede olduğu gibi, dokuz yama dosyasına doğrudan başvuruda bulunabilirsiniz. veya XML tarafından tanımlanmış bir kaynaktan.

Esnek bölgeleri içeren dokuz yama dosyasının nasıl oluşturulacağıyla ilgili kapsamlı bir tartışma için Yeniden boyutlandırılabilir bit eşlemler oluşturma (9 yama dosyaları) adlı makaleyi inceleyin.

Dokuz yama dosyası

dosya konumu:
res/drawable/filename.9.png

Dosya adı, kaynak kimliğidir
derlenen kaynak veri türü:
Kaynak işaretçisini bir NinePatchDrawable
kaynak referansı:
. Java'da: R.drawable.filename
XML'de: @[package:]drawable/filename
örnek:
res/drawable/myninepatch.9.png konumuna kaydedilen bir resimle, bu düzen XML'i dokuz yamayı bir görünüme uygular:
<Button
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:background="@drawable/myninepatch" />
ayrıca bkz.:

XML dokuz yama

XML dokuzlu yama, XML'de tanımlı ve dokuz yama dosyasına işaret eden bir kaynaktır. XML, resimdeki titremeyi belirtin.

dosya konumu:
res/drawable/filename.xml

Dosya adı, kaynak kimliğidir
derlenen kaynak veri türü:
Kaynak işaretçisini bir NinePatchDrawable
kaynak referansı:
. Java'da: R.drawable.filename
XML'de: @[package:]drawable/filename
söz dizimi:
<?xml version="1.0" encoding="utf-8"?>
<nine-patch
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@[package:]drawable/drawable_resource"
    android:dither=["true" | "false"] />
öğeler:
<nine-patch>
Zorunlu. Dokuz yama kaynağını ve özelliklerini tanımlar.

Özellikler:

xmlns:android
Dize. Zorunludur. Şu olması gereken XML ad alanını tanımlar: "http://schemas.android.com/apk/res/android"
android:src
Çekilebilir kaynak. Zorunludur. Dokuz yamadan bahsediliyor dosyası olarak kaydedebilirsiniz.
android:dither
Boole. Bit eşlem çalışmazsa bit eşlem için titretmeyi etkinleştirir veya devre dışı bırakır ekranla aynı piksel yapılandırmasına sahip olmalıdır (örneğin, RGB 565'te ARGB 8888 bit eşlemi). tıklayın.
örnek:
<?xml version="1.0" encoding="utf-8"?>
<nine-patch xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/myninepatch"
    android:dither="false" />

Katman listesi

LayerDrawable, çekilebilir bir nesnedir bir dizi diğer çekilebilir yeri yönetir. Listedeki her çekilebilir kart, liste'ye dokunun. Listedeki son çizilebilir öğe en üste çizilir.

Her çekilebilir, tek bir <layer-list> öğesinin içinde bir <item> öğesiyle temsil edilir.

dosya konumu:
res/drawable/filename.xml

Dosya adı, kaynak kimliğidir
derlenen kaynak veri türü:
Kaynak işaretçisini bir LayerDrawable
kaynak referansı:
. Java'da: R.drawable.filename
XML'de: @[package:]drawable/filename
söz dizimi:
<?xml version="1.0" encoding="utf-8"?>
<layer-list
    xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:drawable="@[package:]drawable/drawable_resource"
        android:id="@[+][package:]id/resource_name"
        android:top="dimension"
        android:right="dimension"
        android:bottom="dimension"
        android:left="dimension" />
</layer-list>
öğeler:
<layer-list>
Zorunlu. Bu, kök öğe olmalıdır. Bir veya daha fazla <item> öğesi içerir.

Özellikler:

xmlns:android
Dize. Zorunludur. Şu olması gereken XML ad alanını tanımlar: "http://schemas.android.com/apk/res/android"
<item>
Nitelikleriyle tanımlanan bir konumda çekilebilir katmana yerleştirilecek bir çekilebilirliği tanımlar. Bir <layer-list> öğesinin alt öğesi olmalıdır. <bitmap> alt öğesi kabul ediliyor öğeler.

Özellikler:

android:drawable
Çekilebilir kaynak. Zorunludur. Çekilebilir öğeye referans verme gösterir.
android:id
Kaynak Kimliği. Bu çekilebilir öğe için benzersiz bir kaynak kimliği. Yeni bir kaynak oluşturmak için Bu öğenin kimliği için şu formu kullanın: "@+id/name" Artı simgesi, bunun yeni bir Kimlik. Bu tanımlayıcıyı şu amaçlarla kullanabilirsiniz: Çekilebilir dosyayı View.findViewById() veya Activity.findViewById() ile alıp değiştirin.
android:top
Boyut. Boyut değeri veya boyut kaynağı olarak üst ofset.
android:right
Boyut. Boyut değeri veya boyut kaynağı olarak sağ ofset.
android:bottom
Boyut. Boyut değeri veya boyut kaynağı olarak alt ofset.
android:left
Boyut. Boyut değeri veya boyut kaynağı olarak sol ofset.

Tüm çekilebilir öğeler, varsayılan olarak kapsayıcı görünümün boyutuna sığacak şekilde ölçeklendirilir. Böylece, Resimlerinizi farklı konumlardaki bir katman listesine yerleştirmek görünümün boyutunu artırabilir ve bazı görseller uygun şekilde ölçeklenir.

Kaçınılması gerekenler listedeki öğeleri ölçeklendirirken, çekilebilir öğeyi belirtmek ve yer çekimini olmayan bir şeyin yer çekimini tanımlamak için <item> öğesinin içinde bir <bitmap> öğesi kullanın ("center" gibi). Örneğin, aşağıdaki <item> bir öğeyi tanımlar gibi bir metrik içerir:

<item android:drawable="@drawable/image" />

Ölçeklendirmeyi önlemek için aşağıdaki örnekte ortalanmış bir <bitmap> öğesi kullanılmıştır yer çekimi:

<item>
  <bitmap android:src="@drawable/image"
          android:gravity="center" />
</item>
örnek:
XML dosyası res/drawable/layers.xml itibarıyla kaydedildi:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
      <bitmap android:src="@drawable/android_red"
        android:gravity="center" />
    </item>
    <item android:top="10dp" android:left="10dp">
      <bitmap android:src="@drawable/android_green"
        android:gravity="center" />
    </item>
    <item android:top="20dp" android:left="20dp">
      <bitmap android:src="@drawable/android_blue"
        android:gravity="center" />
    </item>
</layer-list>

Bu örnekte, çekilebilir öğeyi tanımlamak için iç içe yerleştirilmiş bir <bitmap> öğesi kullanılmaktadır her öğe için "center" yer çekimine sahip bir kaynaktır. Bu, resimlerin hiçbirinin ofset görüntülerinin neden olduğu yeniden boyutlandırmadan dolayı kapsayıcının boyutuna uyar.

Bu düzen XML'i, çekilebilir öğeyi görünüme uygular:

<ImageView
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:src="@drawable/layers" />

Sonuçta, giderek daha fazla ofsetli resim ortaya çıkar:

ayrıca bkz.:

Eyalet listesi

StateListDrawable, XML'de tanımlanan çekilebilir bir nesnedir durumuna bağlı olarak, aynı grafiği temsil eden birden fazla resim kullanan izin verir. Örneğin, bir Button widget'ının durumuna dokunulabilir, odaklanılabilir, ya da hiçbiri; çekilebilir bir durum listesi kullanarak, her öğe için farklı bir arka plan durumu.

Durum listesini bir XML dosyasında açıklarsınız. Her grafik, tek bir <selector> öğesinin içinde bir <item> öğesiyle temsil edilir. Her <item> grafik olarak kullanıldığı durumu açıklayan çeşitli çekilebilir.

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 dayalı değildir eşleşiyor" daha çok eyaletin minimum ölçütlerini karşılayan ilk öğe olabilir.

dosya konumu:
res/drawable/filename.xml

Dosya adı, kaynak kimliğidir
derlenen kaynak veri türü:
Kaynak işaretçisini bir StateListDrawable
kaynak referansı:
. Java'da: R.drawable.filename
XML'de: @[package:]drawable/filename
söz dizimi:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
    android:constantSize=["true" | "false"]
    android:dither=["true" | "false"]
    android:variablePadding=["true" | "false"] >
    <item
        android:drawable="@[package:]drawable/drawable_resource"
        android:state_pressed=["true" | "false"]
        android:state_focused=["true" | "false"]
        android:state_hovered=["true" | "false"]
        android:state_selected=["true" | "false"]
        android:state_checkable=["true" | "false"]
        android:state_checked=["true" | "false"]
        android:state_enabled=["true" | "false"]
        android:state_activated=["true" | "false"]
        android:state_window_focused=["true" | "false"] />
</selector>
öğeler:
<selector>
Zorunlu. Bu, kök öğe olmalıdır. Bir veya daha fazla <item> öğesi içerir.

Özellikler:

xmlns:android
Dize. Zorunludur. Şu olması gereken XML ad alanını tanımlar: "http://schemas.android.com/apk/res/android"
android:constantSize
Boole. Çekilebilir öğenin raporlanan dahili boyutu durum olarak sabit kalırsa doğru değerini döndürür değişiklikler (boyut, tüm eyaletlerin maksimum değeridir); boyut durumu değiştirir. Varsayılan değer, false (yanlış) değeridir.
android:dither
Boole. Bit eşlemin aynı piksele sahip olmaması durumunda bit eşlemin titremesini etkinleştirmek için doğru değerini döndürür Ekran yapılandırma. Örneğin, RGB 565 ekranında ARGB 8888 bit eşlemi; yanlış karartmayı devre dışı bırak. Varsayılan değer, doğru değeridir.
android:variablePadding
Boole. Çekilebilir öğenin dolgusu geçerli değere göre değişirse doğru değerini döndürür durumu belirtin. değerine göre, dolgunun aynı kalması gerekiyorsa false (yanlış) değerini alır dolgusu vardır. Bu özelliği etkinleştirmek, genellikle desteklenmez. Varsayılan değer, false (yanlış) değeridir.
<item>
Özellikleri tarafından açıklandığı şekilde, belirli durumlarda kullanılacak bir çekilebilirdi tanımlar. Bir <selector> öğesinin alt öğesidir.

Özellikler:

android:drawable
Çekilebilir kaynak. Zorunludur. Çekilebilir bir kaynağa referans.
android:state_pressed
Boole. Nesneye dokunulduğunda (ör. bir düğmeye basıldığında) bu öğe kullanılırsa doğru değerini döndürür dokunulduğunda; Bu öğe varsayılan, dokunulmamış durumda kullanılırsa false (yanlış) değerini alır.
android:state_focused
Boole. Bu öğe, nesnede giriş odağı olduğunda kullanılırsa doğru değerini döndürür. Örneğin, kullanıcı bir metin girişi seçtiğinde; bu öğe varsayılan olarak kullanılıyorsa false (yanlış) değerini alır. bir durumu anlatır mısınız?” diye soruldu.
android:state_hovered
Boole. İmleç nesnenin üzerine geldiğinde bu öğe kullanılırsa doğru değerini döndürür; Bu öğe varsayılan olarak, fareyle üzerine gelmeden kullanılırsa false (yanlış) değerini alır. Çoğu zaman bu çekilebilir , "odaklanmış" sayfa için kullanılanla aynı çekilebilir olabilir. durumu.

API düzeyi 14'te kullanıma sunuldu.

android:state_selected
Boole. Nesne geçerliyken bu öğe kullanılırsa doğru değerini döndürür listede gezinirken olduğu gibi, yönlü kontrolle gezinirken kullanıcı seçimi D-pad ile; Nesne seçilmediğinde bu öğe kullanılırsa false (yanlış) değerini alır.

android:state_focused yeterli olmadığında seçilen durum kullanılır Örneğin, liste görünümünün odağı varken ve görünümün içindeki bir öğe D-pad ile seçildiğinde.

android:state_checkable
Boole. Nesne seçilebilirken bu öğe kullanılıyorsa doğru değerini döndürür; bu değer yanlışsa öğe, nesne seçilebilir olmadığında kullanılır. Yalnızca nesne şu durumlarda yararlıdır: bir widget'ın üzerine gelin.
android:state_checked
Boole. Nesne seçiliyken bu öğe kullanılırsa doğru değerini döndürür; bu değer yanlışsa nesne seçilmediğinde kullanılır.
android:state_enabled
Boole. Nesne etkinleştirildiğinde bu öğe kullanılırsa doğru değerini döndürür, Dokunma veya tıklama etkinliklerini alabilme özellikli, nesne kullanıldığında kullanılırsa false (yanlış) devre dışı bırakıldı.
android:state_activated
Boole. Nesne etkinleştirildiğinde bu öğe kullanılırsa doğru değerini döndürür: kalıcı seçim, örneğin "vurgulamak" daha önce seçilen liste öğesini kalıcı olarak gezinme görünümü; nesne etkinleştirilmediğinde kullanılırsa false (yanlış) değerini alır.

API düzeyi 11'de kullanıma sunuldu.

android:state_window_focused
Boole. Uygulama penceresi odaklanıldığında bu öğe kullanılırsa doğru değerini döndürür. Yani Uygulama ön plandaysa uygulama sırasında bu öğe kullanılırsa false (yanlış) pencerenin odak noktası yoktur. Örneğin, bildirim gölgesi aşağı çekilirse veya bir iletişim kutusu gösterilir.

Not: Android, durum listesindeki ilk öğeyi uygular. öğesinin mevcut durumuyla eşleşir. Listedeki ilk öğe önceki durum özelliklerinden hiçbiri yoksa her defasında uygulanır. Bu nedenle varsayılan değerin her zaman son olması gerekir.

örnek:
XML dosyası res/drawable/button.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:drawable="@drawable/button_pressed" /> <!-- pressed -->
    <item android:state_focused="true"
          android:drawable="@drawable/button_focused" /> <!-- focused -->
    <item android:state_hovered="true"
          android:drawable="@drawable/button_focused" /> <!-- hovered -->
    <item android:drawable="@drawable/button_normal" /> <!-- default -->
</selector>

Bu düzen XML'i, durum listesini bir düğmeye çizilebilir:

<Button
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:background="@drawable/button" />
ayrıca bkz.:

Seviye listesi

Her birine maksimum sayısal değer atanan bir dizi alternatif çekilebilirliği yöneten bir çekilebilir değer. setLevel() ile çekilebilir öğenin seviye değeri ayarlandığında değerden büyük veya değere eşit android:maxLevel değerine sahip seviye listesi yönteme geçirilir.

dosya konumu:
res/drawable/filename.xml

Dosya adı, kaynak kimliğidir
derlenen kaynak veri türü:
Kaynak işaretçisini bir LevelListDrawable
kaynak referansı:
. Java'da: R.drawable.filename
XML'de: @[package:]drawable/filename
söz dizimi:
<?xml version="1.0" encoding="utf-8"?>
<level-list
    xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:drawable="@drawable/drawable_resource"
        android:maxLevel="integer"
        android:minLevel="integer" />
</level-list>
öğeler:
<level-list>
Zorunlu. Bu, kök öğe olmalıdır. Bir veya daha fazla <item> öğesi içerir.

Özellikler:

xmlns:android
Dize. Zorunludur. Şu olması gereken XML ad alanını tanımlar: "http://schemas.android.com/apk/res/android"
<item>
Belirli bir seviyede kullanılacak bir çekilebilirliği tanımlar.

Özellikler:

android:drawable
Çekilebilir kaynak. Zorunludur. Çekilebilir öğeye referans verme beslenecek kaynaktır.
android:maxLevel
Tamsayı. Bu öğe için izin verilen maksimum düzey.
android:minLevel
Tamsayı. Bu öğe için izin verilen minimum seviye.
örnek:
<?xml version="1.0" encoding="utf-8"?>
<level-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:drawable="@drawable/status_off"
        android:maxLevel="0" />
    <item
        android:drawable="@drawable/status_on"
        android:maxLevel="1" />
</level-list>

Bu ayar View için uygulandığında seviye setLevel() veya setImageLevel() ile değiştirilebilir.

ayrıca bkz.:

Geçiş çizimi

TransitionDrawable, çekilebilir bir nesnedir geçiş yapabilirsiniz.

Her çekilebilir, tek bir <transition> öğesinin içinde bir <item> öğesiyle temsil edilir. En fazla iki öğe desteklenir. Geçiş yapmak için şu numarayı arayın: startTransition() Alıcı: işlemini geri almak için reverseTransition() numaralı telefonu arayın.

dosya konumu:
res/drawable/filename.xml

Dosya adı, kaynak kimliğidir
derlenen kaynak veri türü:
Kaynak işaretçisini bir TransitionDrawable
kaynak referansı:
. Java'da: R.drawable.filename
XML'de: @[package:]drawable/filename
söz dizimi:
<?xml version="1.0" encoding="utf-8"?>
<transition
xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:drawable="@[package:]drawable/drawable_resource"
        android:id="@[+][package:]id/resource_name"
        android:top="dimension"
        android:right="dimension"
        android:bottom="dimension"
        android:left="dimension" />
</transition>
öğeler:
<transition>
Zorunlu. Bu, kök öğe olmalıdır. Bir veya daha fazla <item> öğesi içerir.

Özellikler:

xmlns:android
Dize. Zorunludur. Şu olması gereken XML ad alanını tanımlar: "http://schemas.android.com/apk/res/android"
<item>
Çekilebilir geçişin parçası olarak kullanılacak bir çekilebilirliği tanımlar. Bir <transition> öğesinin alt öğesi olmalıdır. <bitmap> alt öğesi kabul ediliyor öğeler.

Özellikler:

android:drawable
Çekilebilir kaynak. Zorunludur. Çekilebilir öğeye referans verme gösterir.
android:id
Kaynak Kimliği. Bu çekilebilir öğe için benzersiz bir kaynak kimliği. Yeni bir kaynak oluşturmak için Bu öğenin kimliği için şu formu kullanın: "@+id/name" Artı simgesi, bunun yeni bir Kimlik. Bu tanımlayıcıyı şu amaçlarla kullanabilirsiniz: Çekilebilir tabloyu View.findViewById() veya Activity.findViewById() ile alma ve değiştirme.
android:top
Tamsayı. Piksel cinsinden üst ofset.
android:right
Tamsayı. Piksel cinsinden sağ ofset.
android:bottom
Tamsayı. Piksel cinsinden alt ofset.
android:left
Tamsayı. Piksel cinsinden sol ofset.
örnek:
XML dosyası res/drawable/transition.xml itibarıyla kaydedildi:
<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/on" />
    <item android:drawable="@drawable/off" />
</transition>

Bu düzen XML'i, çekilebilir öğeyi görünüme uygular:

<ImageButton
    android:id="@+id/button"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:src="@drawable/transition" />

Ayrıca, aşağıdaki kod ilk öğeden ikinci öğeye 500 ms'lik bir geçiş yapar:

Kotlin

val button: ImageButton = findViewById(R.id.button)
val drawable: Drawable = button.drawable
if (drawable is TransitionDrawable) {
    drawable.startTransition(500)
}

Java

ImageButton button = (ImageButton) findViewById(R.id.button);
Drawable drawable = button.getDrawable();
if (drawable instanceof TransitionDrawable) {
    ((TransitionDrawable) drawable).startTransition(500);
}
ayrıca bkz.:

Çekilebilir içeriden çekilebilir

XML'de tanımlanan ve belirtilen bir uzaklığa göre başka bir çekilebilir öğe ekleyen bir çekilebilir. Faydalı Görünüm, görünümün gerçek sınırlarından daha küçük bir arka plana ihtiyaç duyduğunda

dosya konumu:
res/drawable/filename.xml

Dosya adı, kaynak kimliğidir
derlenen kaynak veri türü:
Kaynak işaretçisini bir InsetDrawable
kaynak referansı:
. Java'da: R.drawable.filename
XML'de: @[package:]drawable/filename
söz dizimi:
<?xml version="1.0" encoding="utf-8"?>
<inset
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/drawable_resource"
    android:insetTop="dimension"
    android:insetRight="dimension"
    android:insetBottom="dimension"
    android:insetLeft="dimension" />
öğeler:
<inset>
Zorunlu. İçe doğru çekilebilir öğeyi tanımlar. Bu, kök öğe olmalıdır.

Özellikler:

xmlns:android
Dize. Zorunludur. Şu olması gereken XML ad alanını tanımlar: "http://schemas.android.com/apk/res/android"
android:drawable
Çekilebilir kaynak. Zorunludur. Çekilebilir öğeye referans verme beslenecek kaynaktır.
android:insetTop
Boyut. Boyut değeri veya boyut kaynağı olarak en üst ek.
android:insetRight
Boyut. Boyut değeri veya boyut kaynağı olarak sağ ek.
android:insetBottom
Boyut. Boyut değeri veya boyut kaynağı olarak en alttaki ek.
android:insetLeft
Boyut. Boyut değeri veya boyut kaynağı olarak sol ek.
örnek:
<?xml version="1.0" encoding="utf-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/background"
    android:insetTop="10dp"
    android:insetLeft="10dp" />
ayrıca bkz.:

Çekilebilir klip

XML'de tanımlı olan ve bu çekilebilirliğin mevcut seviyesine göre başka bir çekilebilirliği kırpan bir çekilebilir. Siz düzeye göre alt çekilebilir öğenin genişlik ve yüksekliğinin ne kadar kırpılacağını da kontrol edebilir yerleştirileceği yeri kontrol etmek için bir yerçekimi olarak kullanır. Uygulamada en sık kullanılan ilerleme çubukları gibi sesler var.

dosya konumu:
res/drawable/filename.xml

Dosya adı, kaynak kimliğidir
derlenen kaynak veri türü:
Kaynak işaretçisini bir ClipDrawable
kaynak referansı:
. Java'da: R.drawable.filename
XML'de: @[package:]drawable/filename
söz dizimi:
<?xml version="1.0" encoding="utf-8"?>
<clip
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/drawable_resource"
    android:clipOrientation=["horizontal" | "vertical"]
    android:gravity=["top" | "bottom" | "left" | "right" | "center_vertical" |
                     "fill_vertical" | "center_horizontal" | "fill_horizontal" |
                     "center" | "fill" | "clip_vertical" | "clip_horizontal"] />
öğeler:
<clip>
Zorunlu. Çekilebilir klibi tanımlar. Bu, kök öğe olmalıdır.

Özellikler:

xmlns:android
Dize. Zorunludur. Şu olması gereken XML ad alanını tanımlar: "http://schemas.android.com/apk/res/android"
android:drawable
Çekilebilir kaynak. Zorunludur. Çekilebilir öğeye referans verme belirli bir kaynak vardır.
android:clipOrientation
Anahtar kelime. Klibin yönü.

Aşağıdaki sabit değerlerden biri olmalıdır:

DeğerAçıklama
horizontal Çekilebilir öğeyi yatay olarak kırpın.
vertical Çekmeceyi dikey olarak kırpın.
android:gravity
Anahtar kelime. Çekmece içinde klip oluşturmak istediğiniz yeri belirtir.

| ile ayrılmış aşağıdaki sabit değerlerden biri veya daha fazlası olmalıdır:

DeğerAçıklama
top Nesneyi, boyutunu değiştirmeden kapsayıcının üst kısmına yerleştirin. clipOrientation değeri "vertical" olduğunda kırpma, çekilebilir öğenin alt kısmında gerçekleşir.
bottom Nesneyi, boyutunu değiştirmeden kabının alt kısmına yerleştirin. clipOrientation değeri "vertical" olduğunda kırpma, çekilebilir öğenin üst kısmında gerçekleşir.
left Nesneyi, boyutunu değiştirmeden kapsayıcının sol kenarına yerleştirin. Bu, varsayılandır. clipOrientation değeri "horizontal" olduğunda kırpma, videonun sağ tarafında gerçekleşir çekilebilir.
right Nesneyi, boyutunu değiştirmeden kapsayıcının sağ kenarına yerleştirin. clipOrientation değeri "horizontal" olduğunda kırpma, videonun sol tarafında gerçekleşir çekilebilir.
center_vertical Nesneyi, boyutunu değiştirmeden kapsayıcının dikey olarak ortasına yerleştirin. Kırpma davranışı yer çekiminin "center" olmasıyla aynıdır.
fill_vertical Gerekirse nesnenin dikey boyutunu büyüterek kapsayıcıyı tamamen doldurmasını sağlayın. clipOrientation değeri "vertical" olduğunda, çekilebilir öğe dikey boşluk (çekilebilir düzey 0 olmadığı sürece görünür değildir).
center_horizontal Nesneyi, boyutunu değiştirmeden kabının yatay merkezine yerleştirin. Kırpma, yer çekimi "center" olduğunda olduğu gibi davranır.
fill_horizontal Gerekirse nesnenin yatay boyutunu büyüterek kapsayıcıyı tamamen doldurmasını sağlayın. Zaman clipOrientation "horizontal" şeklindedir, çekilebilir öğe yatay alan (çekilebilir düzey 0 değilse görünür değildir).
center Nesneyi hem dikey hem de yatay eksende kapsayıcısının ortasına yerleştirin boyutunu değiştiriyor. clipOrientation "horizontal" olduğunda kırpma solda ve sağda gerçekleşir. clipOrientation "vertical" olduğunda, kırpma hem üstte hem de altta gerçekleşir.
fill Gerekiyorsa nesnenin yatay ve dikey boyutunu büyüterek emin olun. Çekilebilir malzeme, resim yüklendikten sonra yatay ve dikey alan (çekilebilir düzey 0 değilse, bu durumda görünür).
clip_vertical Alt ve/veya alt kenarların kırpılacağı şekilde ayarlanabilecek ek seçenek görebilirsiniz. Klip dikey yer çekimine dayalıdır: Üstteki yer çekimi alt kenar, alt yerçekimi üst kenarı klipslir ve iki kenarın ikisini de klip tutmaz.
clip_horizontal Alt öğenin sol ve/veya sağ kenarlarının kırpılacağı şekilde ayarlanabilecek ek seçenek görebilirsiniz. Klip yatay yer çekimine dayalıdır: sol yer çekimi klipleri sağ kenarını temel alıyorsa, sağ yerçekimi sol kenarı klipslir ve iki kenarın ikisini de klip tutmaz.
örnek:
XML dosyası res/drawable/clip.xml itibarıyla kaydedildi:
<?xml version="1.0" encoding="utf-8"?>
<clip xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/android"
    android:clipOrientation="horizontal"
    android:gravity="left" />

Aşağıdaki düzen XML'i, klibi çekilebilir bir görünüme uygular:

<ImageView
    android:id="@+id/image"
    android:src="@drawable/clip"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content" />

Aşağıdaki kod, çekilebilir öğeyi alır ve kırpma miktarını bir şekilde gösterir:

Kotlin

val imageview: ImageView = findViewById(R.id.image)
val drawable: Drawable = imageview.background
if (drawable is ClipDrawable) {
    drawable.level = drawable.level + 1000
}

Java

ImageView imageview = (ImageView) findViewById(R.id.image);
Drawable drawable = imageview.getBackground();
if (drawable instanceof ClipDrawable) {
    ((ClipDrawable)drawable).setLevel(drawable.getLevel() + 1000);
}

Seviyenin artırılması, kırpma miktarını azaltır ve resmi yavaşça ortaya çıkarır. İşte seviyesinde de kullanabilirsiniz:

Not: Varsayılan düzey 0'dır. Bu düzey, resmin tamamen kırpılması için görünür değil. Düzey 10.000 olduğunda resim kırpılmaz ve tamamen görünür olur.

ayrıca bkz.:

Çekilebilir ölçek

Şu anki değerine göre başka bir çekilebilir öğenin boyutunu değiştiren, XML'de tanımlı bir çekilebilirlik seviyesinde olmalıdır.

dosya konumu:
res/drawable/filename.xml

Dosya adı, kaynak kimliğidir
derlenen kaynak veri türü:
Kaynak işaretçisini bir ScaleDrawable
kaynak referansı:
. Java'da: R.drawable.filename
XML'de: @[package:]drawable/filename
söz dizimi:
<?xml version="1.0" encoding="utf-8"?>
<scale
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/drawable_resource"
    android:scaleGravity=["top" | "bottom" | "left" | "right" | "center_vertical" |
                          "fill_vertical" | "center_horizontal" | "fill_horizontal" |
                          "center" | "fill" | "clip_vertical" | "clip_horizontal"]
    android:scaleHeight="percentage"
    android:scaleWidth="percentage" />
öğeler:
<scale>
Zorunlu. Çekilebilir ölçeği tanımlar. Bu, kök öğe olmalıdır.

Özellikler:

xmlns:android
Dize. Zorunludur. Şu olması gereken XML ad alanını tanımlar: "http://schemas.android.com/apk/res/android"
android:drawable
Çekilebilir kaynak. Zorunludur. Çekilebilir öğeye referans verme gösterir.
android:scaleGravity
Anahtar kelime. Ölçeklendirmeden sonraki yer çekimi konumunu belirtir.

| ile ayrılmış aşağıdaki sabit değerlerden biri veya daha fazlası olmalıdır:

DeğerAçıklama
top Nesneyi, boyutunu değiştirmeden kapsayıcının üst kısmına yerleştirin.
bottom Nesneyi, boyutunu değiştirmeden kabının alt kısmına yerleştirin.
left Nesneyi, boyutunu değiştirmeden kapsayıcının sol kenarına yerleştirin. Bu, varsayılandır.
right Nesneyi, boyutunu değiştirmeden kapsayıcının sağ kenarına yerleştirin.
center_vertical Nesneyi, boyutunu değiştirmeden kapsayıcının dikey olarak ortasına yerleştirin.
fill_vertical Gerekirse nesnenin dikey boyutunu büyüterek kapsayıcıyı tamamen doldurmasını sağlayın.
center_horizontal Nesneyi, boyutunu değiştirmeden kabının yatay merkezine yerleştirin.
fill_horizontal Gerekirse nesnenin yatay boyutunu büyüterek kapsayıcıyı tamamen doldurmasını sağlayın.
center Nesneyi hem dikey hem de yatay eksende kapsayıcısının ortasına yerleştirin boyutunu değiştiriyor.
fill Gerekiyorsa nesnenin yatay ve dikey boyutunu büyüterek emin olun.
clip_vertical Alt ve/veya alt kenarların kırpılacağı şekilde ayarlanabilecek ek seçenek görebilirsiniz. Klip dikey yer çekimine dayalıdır: Üstteki yer çekimi alt kenar, alt yerçekimi üst kenarı klipslir ve iki kenarın ikisini de klip tutmaz.
clip_horizontal Alt öğenin sol ve/veya sağ kenarlarının kırpılacağı şekilde ayarlanabilecek ek seçenek görebilirsiniz. Klip yatay yer çekimine dayalıdır: sol yer çekimi klipleri sağ kenarını temel alıyorsa, sağ yerçekimi sol kenarı klipslir ve iki kenarın ikisini de klip tutmaz.
android:scaleHeight
Yüzde. Çekilebilir öğenin yüzdesi olarak ifade edilen ölçek yüksekliği bağlı. Değerin biçimi %XX şeklindedir (ör. %100 veya %12,5).
android:scaleWidth
Yüzde. Çekilebilir öğenin yüzdesi olarak ifade edilen ölçek genişliği bağlı. Değerin biçimi %XX şeklindedir (ör. %100 veya %12,5).
örnek:
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/logo"
    android:scaleGravity="center_vertical|center_horizontal"
    android:scaleHeight="80%"
    android:scaleWidth="80%" />
ayrıca bkz.:

Şekil çekilebilir

Bu, XML'de tanımlanan genel bir şekildir.

dosya konumu:
res/drawable/filename.xml

Dosya adı, kaynak kimliğidir
derlenen kaynak veri türü:
Kaynak işaretçisini bir GradientDrawable
kaynak referansı:
. Java'da: R.drawable.filename
XML'de: @[package:]drawable/filename
söz dizimi:
<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape=["rectangle" | "oval" | "line" | "ring"] >
    <corners
        android:radius="integer"
        android:topLeftRadius="integer"
        android:topRightRadius="integer"
        android:bottomLeftRadius="integer"
        android:bottomRightRadius="integer" />
    <gradient
        android:angle="integer"
        android:centerX="float"
        android:centerY="float"
        android:centerColor="integer"
        android:endColor="color"
        android:gradientRadius="integer"
        android:startColor="color"
        android:type=["linear" | "radial" | "sweep"]
        android:useLevel=["true" | "false"] />
    <padding
        android:left="integer"
        android:top="integer"
        android:right="integer"
        android:bottom="integer" />
    <size
        android:width="integer"
        android:height="integer" />
    <solid
        android:color="color" />
    <stroke
        android:width="integer"
        android:color="color"
        android:dashWidth="integer"
        android:dashGap="integer" />
</shape>
öğeler:
<shape>
Zorunlu. Çekilebilir şekil. Bu, kök öğe olmalıdır.

Özellikler:

xmlns:android
Dize. Zorunludur. Şu olması gereken XML ad alanını tanımlar: "http://schemas.android.com/apk/res/android"
android:shape
Anahtar kelime. Şeklin türünü tanımlar. Geçerli değerler şunlardır:
DeğerAçıklama
"rectangle" Kapsayıcı görünümünü dolduran bir dikdörtgen. Bu, varsayılan şekildir.
"oval" Kapsayıcı görünümün boyutlarına uyan oval şekil.
"line" Kapsayıcı görünümün genişliğini kaplayan yatay çizgi. Bu şeklin genişliğini tanımlamak için <stroke> öğesi gerekir satırında görünür.
"ring" Yüzük şekli.

Aşağıdaki özellikler yalnızca android:shape="ring" durumunda kullanılır:

android:innerRadius
Boyut. Yarıçap halkanın iç kısmını (ortadaki delik) bir boyut değeri veya boyut kaynağı olarak kullanın.
android:innerRadiusRatio
Kayan. İç yarıçapın yarıçapı halkanın bir bölümüdür ve halka genişliğinin oranı olarak ifade edilir. Örneğin, android:innerRadiusRatio="5" ise iç yarıçap, halkanın genişliğinin 5'e bölümüne eşittir. Bu değer android:innerRadius tarafından geçersiz kılındı. Varsayılan değer 9'dur.
android:thickness
Boyut. Kapağın kalınlığı Halka, boyut değeri veya boyut kaynağı olarak kullanılır.
android:thicknessRatio
Kayan. Yüzüğün kalınlığı halkanın genişliğinin oranı olarak ifade edilir. Örneğin, android:thicknessRatio="2" ise kalınlık, halka genişliğinin 2'ye bölümüne eşittir. Bu değer, android:innerRadius tarafından geçersiz kılındı. Varsayılan değer 3'tür.
android:useLevel
Boole. Bu ifade şu şekilde kullanılırsa True (doğru) değerine sahiptir: LevelListDrawable. Bu genellikle yanlıştır, Aksi takdirde, şekliniz görünmeyebilir.
<corners>
Şekil için yuvarlatılmış köşeler oluşturur. Yalnızca şekil dikdörtgen olduğunda geçerlidir.

Özellikler:

android:radius
Boyut. Boyut değeri veya boyut kaynağı olarak tüm köşelerin yarıçapı. Bu, her bir kampanya için geçersiz kılınır köşeyi aşağıdaki özelliklere göre ekleyebilirsiniz.
android:topLeftRadius
Boyut. Sol üst köşenin boyut değeri veya boyut kaynağı olarak yarıçapı.
android:topRightRadius
Boyut. Boyut değeri veya boyut kaynağı olarak sağ üst köşenin yarıçapı.
android:bottomLeftRadius
Boyut. Sol alt köşenin boyut değeri veya boyut kaynağı olarak yarıçapı.
android:bottomRightRadius
Boyut. Boyut değeri veya boyut kaynağı olarak sağ alt köşenin yarıçapı.

Not: Başlangıçta her köşeye bir köşe verilmelidir. yarıçapı 1'den büyük olursa köşeler yuvarlanmaz. Belirli köşeleri kullanmak isterseniz yuvarlanmaması için geçici bir çözüm, varsayılan köşeyi ayarlamak üzere android:radius kullanmaktır. ve ardından her köşeyi gerçekten belirlediğiniz değerlerle geçersiz kılın köşelerin yuvarlatılmasını istemediğiniz yerlerde 0 ("0dp") sağlayın.

<gradient>
Şeklin gradyan rengini belirtir.

Özellikler:

android:angle
Tamsayı. Gradyan açısının derece cinsinden değeri. 0 soldan sağa, 90 aşağıdan yukarıya doğru. 45'in katı olmalıdır. Varsayılan değer 0'dır.
android:centerX
Kayan. Gradyanın merkezi için göreli X konumu (0 - 1,0).
android:centerY
Kayan. Gradyanın merkezi için göreli Y konumu (0 - 1,0).
android:centerColor
Renk. Başlangıç ve bitiş renkleri arasında gelen isteğe bağlı renk, onaltılık değer veya renk kaynağı.
android:endColor
Renk. Onaltılık olarak bitiş rengi değer veya renk kaynağı.
android:gradientRadius
Kayan. Renk geçişinin yarıçapı. Yalnızca android:type="radial" tarihinde uygulanır.
android:startColor
Renk. Başlangıç rengi (onaltılık olarak) değer veya renk kaynağı.
android:type
Anahtar kelime. Uygulanacak gradyan kalıbının türü. Geçerli değerler şunlardır:
DeğerAçıklama
"linear" Çizgisel bir gradyan. Bu, varsayılan ayardır.
"radial" Dairesel gradyan. Başlangıç rengi ortanın rengidir.
"sweep" Sürekli çizgi gradyanı.
android:useLevel
Boole. Bu bir LevelListDrawable olarak kullanılıyorsa doğru değerini döndürür.
<padding>
Kapsayıcı görünüm öğesine uygulanacak dolgu. Bu, görünümün yerini alır değil, içeriktir.

Özellikler:

android:left
Boyut. Boyut değeri veya boyut kaynağı olarak sol dolgu.
android:top
Boyut. Boyut değeri veya boyut kaynağı olarak üst dolgu.
android:right
Boyut. Boyut değeri veya boyut kaynağı olarak sağ dolgu.
android:bottom
Boyut. Boyut değeri veya boyut kaynağı olarak alt dolgu.
<size>
Şeklin boyutu.

Özellikler:

android:height
Boyut. Şeklin, boyut değeri veya boyut kaynağı olarak yüksekliği.
android:width
Boyut. Şeklin, boyut değeri veya boyut kaynağı olarak genişliği.

Not: Şekil, varsayılan olarak kapsayıcının boyutuna göre ölçeklendirilir burada tanımlanan boyutlarla orantılı olarak görüntüleyin. Şekli ImageView içinde kullanırken android:scaleType öğesini "center" olarak ayarlayarak ölçeklendirmeyi kısıtlayabilirsiniz.

<solid>
Şekli dolduracak düz renk.

Özellikler:

android:color
Renk. Şekle uygulanacak renk (onaltılı olarak) değer veya renk kaynağı.
<stroke>
Şekil için bir fırça çizgisi.

Özellikler:

android:width
Boyut. Çizginin, boyut değeri veya boyut kaynağı olarak kalınlığı.
android:color
Renk. Çizginin rengi onaltılık değer veya renk kaynağı.
android:dashGap
Boyut. Boyut değeri veya boyut kaynağı olarak çizgi kısa çizgileri arasındaki mesafe. Yalnızca android:dashWidth ayarlanmışsa geçerlidir.
android:dashWidth
Boyut. Her kısa çizginin, boyut değeri veya boyut kaynağı olarak boyutu. Yalnızca android:dashGap ayarlanmışsa geçerlidir.
örnek:
XML dosyası res/drawable/gradient_box.xml itibarıyla kaydedildi:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:startColor="#FFFF0000"
        android:endColor="#80FF00FF"
        android:angle="45"/>
    <padding android:left="7dp"
        android:top="7dp"
        android:right="7dp"
        android:bottom="7dp" />
    <corners android:radius="8dp" />
</shape>

Bu düzen XML'i, şekli bir görünüme uygular:

<TextView
    android:background="@drawable/gradient_box"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content" />

Bu uygulama kodu, çizilebilir şekli alır ve bir görünüme uygular:

Kotlin

val shape: Drawable? = getDrawable(resources, R.drawable.gradient_box, getTheme())

val tv: TextView = findViewById(R.id.textview)
tv.background = shape

Java

Resources res = getResources();
Drawable shape = ResourcesCompat.getDrawable(res, R.drawable.gradient_box, getTheme());

TextView tv = (TextView)findViewById(R.id.textview);
tv.setBackground(shape);
ayrıca bkz.: