Ç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)
- 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ğer | Açı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ğer | Açı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ğer | Açı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ğer | Açı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ğer | Açı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ğer | Açı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ğer | Açı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.:
-