Ç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:
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:
- ö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.:
res/drawable/filename.xml
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:
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.:
res/drawable/filename.9.png
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:
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:
- ö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" />
res/drawable/filename.xml
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:
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:
- ö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.:
res/drawable/filename.xml
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:
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:
- ö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.:
res/drawable/filename.xml
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:
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:
- ö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 seviyesetLevel()
veyasetImageLevel()
ile değiştirilebilir. - ayrıca bkz.:
res/drawable/filename.xml
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:
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:
- ö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.:
res/drawable/filename.xml
Ç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:
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:
- ö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.:
res/drawable/filename.xml
Ç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:
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:
- ö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.:
res/drawable/filename.xml
Ç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:
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:
- ö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.:
res/drawable/filename.xml
Şekil çekilebilir
Bu, XML'de tanımlanan genel bir şekildir.
- dosya konumu:
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:
- ö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 = 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 bkz.:
res/drawable/filename.xml