Çekilebilir kaynak, ekrana çizilebilen ve getDrawable(int)
gibi API'lerle alabileceğiniz veya android:drawable
ve android:icon
gibi özelliklere sahip başka bir XML kaynağına uygulayabileceğiniz bir grafik için genel bir kavramdır.
Birkaç çekilebilir öğe türü vardır:
- Bitmap 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ılması için uzatılabilir bölgelere sahip bir PNG dosyası (
.9.png
).NinePatchDrawable
oluşturur. - Katman listesi
- Diğer çekilebilir öğeleri yöneten bir çekilebilir programdır. Bunlar dizi sırasına göre çizildiğinden, en büyük dizine sahip öğe yukarıya çizilir.
LayerDrawable
oluşturur. - Eyalet listesi
- Farklı durumlar için farklı bit eşlem grafiklerine referans veren XML dosyası (örneğin, bir düğmeye dokunulduğunda farklı bir resim kullanmak için).
StateListDrawable
oluşturur. - Seviye listesi
- Her birine maksimum sayısal değer atanan çeşitli alternatif çekilebilir öğeleri yöneten bir çekilebilir dosyasını tanımlayan XML dosyası.
LevelListDrawable
oluşturur. - Çekilebilir geçiş özelliği
- İki çekilebilir kaynak arasında geçiş yapabilen bir çekilebilir dosyasını tanımlayan XML dosyası.
TransitionDrawable
oluşturur. - İçeri çekilebilir
- Belirtilen mesafeye göre başka bir çekilebilir öğe yerleştiren bir çekilebilir dosyayı tanımlayan XML dosyası. Bu, bir görünüm için görünümün gerçek sınırlarından daha küçük bir arka plan çekilebilir öğesine ihtiyaç duyulduğunda yararlı olur.
- Klip çekilebilir
- Bir çekilebilir öğenin geçerli seviye değerine göre başka bir çekilebilir öğesini kesen bir çekilebilir öğe tanımlayan XML dosyası.
ClipDrawable
oluşturur. - Çekilebilir ölçekleme
- Başka bir çekilebilir öğenin boyutunu geçerli düzey değerine göre değiştiren bir çekilebilir öğe tanımlayan XML dosyası.
ScaleDrawable
oluşturur - Şekil çizilebilir.
- Renkler ve renk geçişleri de dahil olmak üzere geometrik bir şekli tanımlayan XML dosyası.
GradientDrawable
oluşturur.
AnimationDrawable
oluşturma hakkında bilgi için Animasyon kaynakları dokümanına bakın.
Not: Renk kaynağı, XML'de çekilebilir bir kaynak olarak da kullanılabilir. Örneğin, eyalet listesi çizimi oluştururken 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 edilen, API düzeyi 17 veya sonraki sürümleri gerekir), JPG (kabul edilebilir), GIF (önerilmez).
Kaynak kimliği olarak dosya adını kullanarak bir bit eşlem dosyasına doğrudan referans verebilir veya XML'de bir takma ad kaynak kimliği oluşturabilirsiniz.
Not: Bit eşlem dosyaları, derleme işlemi sırasında aapt
aracı tarafından kayıpsız resim sıkıştırma ile otomatik olarak optimize edilebilir. Örneğin, 256'dan fazla renk gerektirmeyen gerçek renkli bir PNG, renk paletine sahip 8 bitlik bir PNG'ye dönüştürülebilir. Böylece, daha az bellek gerektiren, eşit kalitede bir görüntü elde edilir.
Bu nedenle, bu dizine yerleştirilen resim ikili programlarının derleme sırasında değişebileceğini unutmayın. Bir görüntüyü bit eşlem olarak dönüştürmek için bit akışı olarak okumayı planlıyorsanız resimlerinizi bunun yerine optimize edilmediği res/raw/
klasörüne yerleştirin.
Bit eşlem dosyası
Bit eşlem dosyası PNG, WEBP, JPG veya GIF dosyasıdır. Android, bu dosyaları res/drawable/
dizinine kaydettiğinizde bu dosyalardan herhangi biri için bir Drawable
kaynağı oluşturur.
- dosya konumu:
res/drawable/filename.png
(.png
,.webp
,.jpg
veya.gif
)
Dosya adı, kaynak kimliğidir- derlenmiş kaynak veri türü:
BitmapDrawable
öğesine kaynak işaretçisi- kaynak referansı:
-
Java'da:
R.drawable.filename
XML'de:@[package:]drawable/filename
- örnek:
res/drawable/myimage.png
konumuna kaydedilen bir resimle birlikte bu düzen XML'si, resmi bir görünüme uygular:<ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/myimage" />
Aşağıdaki uygulama kodu bu resmi
Drawable
olarak 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 bakın:
XML bit eşlemi
XML bit eşlemi, XML'de tanımlanan ve bit eşlem dosyasını işaret eden bir kaynaktır. Efekt, ham bit eşlem dosyasının bir takma adı gibidir. XML, bit eşlem için karartma ve döşeme gibi ek özellikler belirtebilir.
Not: <bitmap>
öğesini, <item>
öğesinin alt öğesi olarak kullanabilirsiniz. Örneğin, bir eyalet listesi veya katman listesi oluştururken android:drawable
özelliğini bir <item>
öğesinden hariç tutabilir ve içine çekilebilir öğeyi tanımlayan bir <bitmap>
yerleştirebilirsiniz.
- dosya konumu:
res/drawable/filename.xml
Dosya adı, kaynak kimliğidir- derlenmiş kaynak veri türü:
BitmapDrawable
öğesine kaynak işaretçisi- 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:
- ö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 bakın:
Dokuz Bant
NinePatch
, görünümdeki içerik normal resim sınırlarını aştığında Android'in ölçeklendirebileceği uzatılabilir bölgeler tanımlayabileceğiniz bir PNG resmidir. Bu resim türünü genellikle en az bir boyutu "wrap_content"
olarak ayarlanmış bir görünümün arka planı olarak atarsınız.
Görünüm, içeriği barındıracak şekilde büyüdüğünde, dokuz yama resmi de
görünümün boyutuna uyacak şekilde ölçeklendirilir. Dokuz yamalı resmin kullanımına örnek olarak Android'in standart Button
widget'ı tarafından kullanılan arka plan, düğmenin içindeki metni (veya resmi) kapsayacak şekilde genişletilmesi gerekir.
Normal bir bit eşlemede olduğu gibi, dokuz yama dosyasına doğrudan veya XML tarafından tanımlanan bir kaynaktan başvurabilirsiniz.
Uzatılabilir bölgeler içeren dokuz yama dosyasının nasıl oluşturulacağıyla ilgili kapsamlı bir açıklama için Yeniden boyutlandırılabilir bit eşlemler oluşturma (9 yama dosyaları) konusuna bakın.
Dokuz yama dosyası
- dosya konumu:
res/drawable/filename.9.png
Dosya adı, kaynak kimliğidir- derlenmiş kaynak veri türü:
NinePatchDrawable
öğesine kaynak işaretçisi- kaynak referansı:
-
Java'da:
R.drawable.filename
XML'de:@[package:]drawable/filename
- örnek:
res/drawable/myninepatch.9.png
konumuna kaydedilen bir resimle birlikte, bu düzen XML'i bir görünüme dokuz yama uygular:<Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:background="@drawable/myninepatch" />
- ayrıca bakın:
XML dokuz yaması
XML dokuz yaması, XML'de tanımlanan ve bir dokuz yama dosyasına işaret eden bir kaynaktır. XML, resim için dalgalanmaları belirtebilir.
- dosya konumu:
res/drawable/filename.xml
Dosya adı, kaynak kimliğidir- derlenmiş kaynak veri türü:
NinePatchDrawable
öğesine kaynak işaretçisi- 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:
- ö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
, diğer çekilebilir öğeleri yöneten çekilebilir bir nesnedir. Listedeki her çizim, listenin sırasına göre çizilir. Listedeki son çizim en üste çizilir.
Her çizim tek bir <layer-list>
öğesi içinde bir <item>
öğesiyle temsil edilir.
- dosya konumu:
res/drawable/filename.xml
Dosya adı, kaynak kimliğidir- derlenmiş kaynak veri türü:
LayerDrawable
öğesine kaynak işaretçisi- 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:
- örnek:
- XML dosyasının
res/drawable/layers.xml
konumuna 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, yer çekimi
"center"
olan her bir öğe için çekilebilir kaynağı tanımlamak amacıyla iç içe yerleştirilmiş bir<bitmap>
öğesi kullanılmaktadır. Bu, ofset görüntülerinin neden olduğu yeniden boyutlandırma nedeniyle, hiçbir görüntünün kapsayıcının boyutuna sığmayacak şekilde ölçeklendirilmemesini sağlar.Bu düzen XML'si, çizilebilir öğeyi bir görünüme uygular:
<ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/layers" />
Sonuçta, gittikçe ofseti giderek artan resimlerden oluşur:
- ayrıca bakın:
Eyalet listesi
StateListDrawable
, XML'de tanımlanan ve nesnenin durumuna bağlı olarak aynı grafiği temsil etmek için birden fazla resim kullanan çekilebilir bir nesnedir. Örneğin, bir Button
widget'ının durumuna dokunulabilir, odaklanılabilir veya her ikisi de olmayabilir. Bir durum listesi çekilebilirliğini kullanarak her durum için farklı bir arka plan resmi sağlayabilirsiniz.
Eyalet listesini bir XML dosyasında açıklarsınız. Her grafik, tek bir <selector>
öğesi içinde bir <item>
öğesiyle temsil edilir. Her <item>
, çizim için grafik olarak kullanıldığı durumu tanımlamak için çeşitli özellikler kullanır.
Her bir durum değişikliği sırasında, durum listesi yukarıdan aşağıya doğru gezilir ve geçerli durumla eşleşen ilk öğe kullanılır. Seçim,"en iyi eşleşmeye" dayalı değildir. Bunun yerine eyaletin minimum ölçütlerini karşılayan ilk öğeye dayanır.
- dosya konumu:
res/drawable/filename.xml
Dosya adı, kaynak kimliğidir- derlenmiş kaynak veri türü:
StateListDrawable
öğesine kaynak işaretçisi- 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:
- örnek:
- XML dosyasının
res/drawable/button.xml
konumuna 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'si, bir düğmeye çekilebilir durum listesini uygular:
<Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:background="@drawable/button" />
- ayrıca bakın:
Seviye listesi
Her birine maksimum sayısal değer atanmış bir dizi alternatif çekilebilir öğeyi yöneten çekilebilir reklam. Çekilebilir öğesinin setLevel()
ile seviye değerinin ayarlanması, düzey listesinde yönteme iletilen değerden büyük veya bu değere eşit android:maxLevel
değerine sahip çekilebilir kaynağı yükler.
- dosya konumu:
res/drawable/filename.xml
Dosya adı, kaynak kimliğidir- derlenmiş kaynak veri türü:
LevelListDrawable
öğesine kaynak işaretçisi- 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:
- ö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 seviye bir
View
için uygulandıktan sonrasetLevel()
veyasetImageLevel()
ile değiştirilebilir. - ayrıca bakın:
Çekilebilir geçişli
TransitionDrawable
, diğer iki çekilebilir kaynak arasında geçiş yapabilen çekilebilir bir nesnedir.
Her çizim tek bir <transition>
öğesi içinde bir <item>
öğesiyle temsil edilir. En fazla iki öğe desteklenir. Geçişi ileriye taşımak için startTransition()
numaralı telefonu arayın. Geriye geçiş için reverseTransition()
numaralı telefonu arayın.
- dosya konumu:
res/drawable/filename.xml
Dosya adı, kaynak kimliğidir- derlenmiş kaynak veri türü:
TransitionDrawable
öğesine kaynak işaretçisi- 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:
- örnek:
- XML dosyasının
res/drawable/transition.xml
konumuna 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'si, çizilebilir öğeyi bir görünüme uygular:
<ImageButton android:id="@+id/button" android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/transition" />
Aşağıdaki kod da ilk öğeden ikinciye 500 ms'lik bir geçiş gerçekleştirir:
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 bakın:
İçeri çekilebilir
XML'de tanımlanmış ve belirtilen bir uzaklığa göre başka bir çekilebilir öğe yerleştiren bir çekilebilir öğe. Bir görünüm, gerçek sınırlarından daha küçük bir arka plana ihtiyaç duyduğunda bu özellik faydalı olur.
- dosya konumu:
res/drawable/filename.xml
Dosya adı, kaynak kimliğidir- derlenmiş kaynak veri türü:
InsetDrawable
öğesine kaynak işaretçisi- 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:
- ö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 bakın:
Klip çekilebilir
Bu çekilebilir malzemenin geçerli düzeyine göre başka bir çekilebilir öğesini kesen, XML'de tanımlanmış bir çizim. Alt çekilebilir öğenin ne kadar genişlik ve yükseklikten kırpılacağını seviyeye göre denetleyebilirsiniz. Ayrıca, öğenin genel kapsayıcısında nereye yerleştirileceğini kontrol etmek için yer çekimini de kontrol edebilirsiniz. Genellikle ilerleme çubukları gibi şeyleri uygulamak için kullanılır.
- dosya konumu:
res/drawable/filename.xml
Dosya adı, kaynak kimliğidir- derlenmiş kaynak veri türü:
ClipDrawable
öğesine kaynak işaretçisi- 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:
- örnek:
- XML dosyasının
res/drawable/clip.xml
konumuna 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'si, çekilebilir klibi 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, çizimi alır ve görüntüyü kademeli olarak ortaya çıkarmak için kırpma miktarını artırır:
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); }
Düzeyi artırıldığında kırpma miktarı azalır ve resim yavaşça ortaya çıkar. Burada 7000 seviyesindedir:
Not: Varsayılan düzey 0'dır. Bu düzey, resmin görünmemesi için tamamen kırpılmıştır. Düzey 10.000 olduğunda resim kırpılmaz ve tamamen görünür.
- ayrıca bakın:
Çekilebilir ölçekleme
Mevcut düzeyine göre başka bir çekilebilir öğenin boyutunu değiştiren, XML'de tanımlanmış bir çekilebilir öğe.
- dosya konumu:
res/drawable/filename.xml
Dosya adı, kaynak kimliğidir- derlenmiş kaynak veri türü:
ScaleDrawable
öğesine kaynak işaretçisi- 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:
- ö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 bakın:
Çekilebilir şekil
Bu, XML'de tanımlanan genel bir şekildir.
- dosya konumu:
res/drawable/filename.xml
Dosya adı, kaynak kimliğidir- derlenmiş kaynak veri türü:
GradientDrawable
öğesine kaynak işaretçisi- 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:
- örnek:
- XML dosyasının
res/drawable/gradient_box.xml
konumuna 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'si, çizilebilir ş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, şekli çekilebilir hale getirir 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 = shapeJava
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 bakın: