ड्रॉ करने लायक संसाधन, एक ऐसे ग्राफ़िक का सामान्य सिद्धांत है जिसे स्क्रीन पर बनाया जा सकता है
आप getDrawable(int)
जैसे एपीआई की मदद से वापस पा सकते हैं या लागू कर सकते हैं
को android:drawable
और android:icon
जैसे एट्रिब्यूट के साथ किसी दूसरे एक्सएमएल रिसॉर्स में जोड़ना होगा.
ड्रॉबल के कई तरीके होते हैं:
- बिटमैप फ़ाइल
-
- बिट मैप ग्राफ़िक फ़ाइल (PNG, WebP, JPG या GIF).
यह
BitmapDrawable
बनाता है.
- नाइन-पैच फ़ाइल
- ऐसी PNG फ़ाइल जिसमें कॉन्टेंट के हिसाब से साइज़ बदलने की सुविधा हो और इमेज का साइज़ बदला जा सके (
.9.png
). NinePatchDrawable
बनाता है.
- लेयर सूची
- ड्रॉ करने लायक ऐसा डिवाइस जो दूसरे ड्रॉ करने लायक आइटम के कलेक्शन को मैनेज करता है. इन्हें अरे के क्रम में बनाया जाता है, इसलिए
सबसे बड़े इंडेक्स वाले एलिमेंट को सबसे ऊपर दिखाया जाता है. यह
LayerDrawable
बनाता है.
- राज्यों की सूची
- ऐसी एक्सएमएल फ़ाइल जो अलग-अलग बिटमैप ग्राफ़िक का रेफ़रंस देती है
अलग-अलग स्थितियों के लिए—उदाहरण के लिए, किसी बटन पर टैप किए जाने पर किसी दूसरी इमेज का इस्तेमाल करना.
यह
StateListDrawable
बनाता है.
- लेवल की सूची
- ड्रॉइंग फ़ाइल के बारे में बताने वाली एक्सएमएल फ़ाइल, जो कई वैकल्पिक ड्रॉबल को मैनेज करती है. हर फ़ाइल में
असाइन की गई ज़्यादा से ज़्यादा संख्या वाली वैल्यू डाली गई है. यह
LevelListDrawable
बनाता है.
- ड्रॉइंग ड्रॉ करने की सुविधा
- ऐसी एक्सएमएल फ़ाइल जो ड्रॉ करने लायक के बारे में बताती है, जो ड्रॉ करने लायक दो रिसॉर्स के बीच क्रॉस-फ़ेड हो सकती है.
यह
TransitionDrawable
बनाता है.
- इनसेट ड्रॉ करने लायक
- ड्रॉ करने लायक ऐसी एक्सएमएल फ़ाइल जिसमें तय की गई दूरी से, ड्रॉ किए जा सकने वाले किसी अन्य एलिमेंट को इनसेट में शामिल किया जाता है.
यह तब काम आता है, जब किसी व्यू के लिए ड्रॉ करने लायक बैकग्राउंड की ज़रूरत हो और वह व्यू के असल बैकग्राउंड से छोटा हो
सीमाओं.
- क्लिप ड्रॉ करने लायक
- ऐसी एक्सएमएल फ़ाइल जो ड्रॉएबल के बारे में जानकारी देती है. यह फ़ाइल, इस ड्रॉएबल के
मौजूदा लेवल की वैल्यू. यह
ClipDrawable
बनाता है.
- ड्रॉ करने लायक स्केल
- ऐसी एक्सएमएल फ़ाइल जो ड्रॉएबल के बारे में बताती है. यह फ़ाइल, ड्रॉ करने लायक किसी अन्य एलिमेंट के साइज़ को उसके
मौजूदा लेवल की वैल्यू. इससे
ScaleDrawable
बनता है
- ड्रॉ करने लायक आकार.
- ऐसी एक्सएमएल फ़ाइल जो ज्यामितीय आकार को परिभाषित करती है. इसमें रंग और ग्रेडिएंट भी शामिल होते हैं.
यह
GradientDrawable
बनाता है.
यह जानने के लिए कि
AnimationDrawable
बनाएं,
ऐनिमेशन संसाधन दस्तावेज़ देखें.
ध्यान दें: रंग का रिसॉर्स
एक्सएमएल में ड्रॉ करने लायक के तौर पर इस्तेमाल किया जाता है. उदाहरण के लिए, राज्यों की सूची बनाते समय
ड्रॉ करने लायक है, तो आप android:drawable
एट्रिब्यूट (android:drawable="@color/green"
) के लिए रंग से जुड़े संसाधन का संदर्भ ले सकते हैं.
बिट मैप
बिट मैप इमेज. Android पर इन फ़ॉर्मैट में बिटमैप फ़ाइलें काम करती हैं:
PNG (पसंदीदा), WebP (पसंदीदा, एपीआई लेवल 17 या उसके बाद के लेवल की ज़रूरत है), JPG (स्वीकार करने लायक), GIF (अस्वीकार किया गया).
आप संसाधन आईडी के रूप में फ़ाइल नाम का उपयोग करके, किसी बिटमैप फ़ाइल का सीधे संदर्भ दे सकते हैं, या कोई
एक्सएमएल में, उपनाम का संसाधन आईडी.
ध्यान दें: बिटमैप फ़ाइलें लॉसलेस के साथ अपने-आप ऑप्टिमाइज़ हो सकती हैं
बिल्ड प्रोसेस के दौरान aapt
टूल की मदद से इमेज को कंप्रेस करने की सुविधा. इसके लिए
उदाहरण के लिए, किसी असली रंग की PNG फ़ाइल को 8-बिट में बदला जा सकता है, जिसमें 256 से ज़्यादा रंगों की ज़रूरत न हो
रंग पटल के साथ PNG फ़ॉर्मैट. इससे एक जैसी क्वालिटी की इमेज मिलती है, जिसे कम
मेमोरी.
इसलिए, ध्यान रखें कि इस डायरेक्ट्री में मौजूद इमेज बाइनरी, बिल्ड के दौरान बदल सकती हैं. अगर आपने
किसी इमेज को बिट स्ट्रीम के रूप में पढ़ने की योजना है, ताकि उसे बिट मैप में बदला जा सके, अपनी इमेज को
res/raw/
फ़ोल्डर का इस्तेमाल करना चाहिए, जहां उन्हें ऑप्टिमाइज़ नहीं किया जाता है.
बिटमैप फ़ाइल
बिट मैप फ़ाइल PNG, WebP, JPG या GIF फ़ाइल होती है. Android, Drawable
बनाता है
इनमें से किसी भी फ़ाइल के लिए संसाधन तब लागू होगा, जब आप उन्हें res/drawable/
डायरेक्ट्री में सेव करेंगे.
- फ़ाइल की जगह:
res/drawable/filename.png
(.png
, .webp
, .jpg
या .gif
)
फ़ाइल का नाम, संसाधन आईडी है
- कंपाइल किए गए संसाधन डेटा टाइप:
BitmapDrawable
के लिए रिसॉर्स पॉइंटर
- संसाधन का रेफ़रंस:
- अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
Java में:
R.drawable.filename
एक्सएमएल में: @[package:]drawable/filename
- उदाहरण:
res/drawable/myimage.png
पर सेव की गई इमेज के साथ, यह लेआउट एक्सएमएल लागू होता है
किसी व्यू पर इमेज जोड़ने के लिए:
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/myimage" />
नीचे दिया गया ऐप्लिकेशन कोड, इमेज को Drawable
के तौर पर फिर से लेता है:
Kotlin
val drawable: Drawable? = ResourcesCompat.getDrawable
(resources, R.drawable.myimage, null)
- यह भी देखें:
-
एक्सएमएल बिटमैप
एक्सएमएल बिटमैप, एक्सएमएल में तय किया गया एक ऐसा संसाधन है जो किसी बिटमैप फ़ाइल पर ले जाता है. यह प्रभाव
रॉ बिटमैप फ़ाइल. XML बिटमैप के लिए अतिरिक्त गुण बता सकता है, जैसे कि डिदरिंग और टाइलिंग.
ध्यान दें: <bitmap>
एलिमेंट का इस्तेमाल इनके चाइल्ड के तौर पर किया जा सकता है
एक <item>
एलिमेंट. इसके लिए
उदाहरण के लिए, राज्यों की सूची या लेयर सूची बनाते समय,
आप android:drawable
को निकाल सकते हैं
<item>
एलिमेंट से एट्रिब्यूट जोड़ें और उसके अंदर <bitmap>
को नेस्ट करें
जो ड्रॉ किए जा सकने वाले आइटम के बारे में बताता है.
- फ़ाइल की जगह:
res/drawable/filename.xml
फ़ाइल का नाम, रिसॉर्स आईडी है
- कंपाइल किए गए संसाधन डेटा टाइप:
BitmapDrawable
के लिए रिसॉर्स पॉइंटर
- संसाधन का रेफ़रंस:
- अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
Java में:
R.drawable.filename
एक्सएमएल में: @[package:]drawable/filename
- सिंटैक्स:
-
<?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"] />
- एलिमेंट:
-
<bitmap>
- ज़रूरी है. बिटमैप सोर्स और उसकी प्रॉपर्टी के बारे में बताता है.
विशेषताएं:
xmlns:android
- स्ट्रिंग. एक्सएमएल नेमस्पेस तय करता है, जिसे
"http://schemas.android.com/apk/res/android"
. यह सिर्फ़ तब ज़रूरी होता है, जब
<bitmap>
रूट एलिमेंट है. इसकी ज़रूरत नहीं है, क्योंकि
<bitmap>
को <item>
में नेस्ट किया गया है.
android:src
- ड्रॉ करने लायक संसाधन. ज़रूरी है. ड्रॉएबल का रेफ़रंस
संसाधन.
android:antialias
- बूलियन. एंटीएलियाज़िंग को चालू या बंद करती है.
android:dither
- बूलियन. अगर बिट मैप काम नहीं करता है, तो इससे बिट मैप में डेटा को डिदर करने की सुविधा चालू या बंद होती है
उनका पिक्सल कॉन्फ़िगरेशन स्क्रीन के जैसा ही होता है, जैसे कि RGB 565 पर ARGB 8888 बिटमैप
स्क्रीन.
android:filter
- बूलियन. बिट मैप फ़िल्टर करने की सुविधा को चालू या बंद करता है. फ़िल्टर करने की सुविधा का इस्तेमाल तब किया जाता है, जब
बिट मैप के दिखने का तरीका बेहतर बनाने के लिए छोटा या बढ़ाया जाता है.
android:gravity
- कीवर्ड. बिट मैप का गुरुत्वाकर्षण तय करता है. गुरुत्वाकर्षण संकेत देता है कि
अगर बिट मैप कंटेनर से छोटा है, तो ड्रॉएबल को उसके कंटेनर में रखें.
इनमें से एक या एक से ज़्यादा कॉन्सटेंट वैल्यू होनी चाहिए, जिन्हें |
से अलग किया गया हो:
वैल्यू | ब्यौरा |
top |
ऑब्जेक्ट को उसके साइज़ में बदलाव किए बिना, उसके कंटेनर के ऊपर रखें. |
bottom |
ऑब्जेक्ट को उसके कंटेनर के नीचे रखें, उसका आकार बदले बिना. |
left |
ऑब्जेक्ट को उसके आकार में बदलाव किए बिना उसके कंटेनर के बाएं किनारे पर रखें. |
right |
ऑब्जेक्ट को उसके आकार में बदलाव किए बिना उसके कंटेनर के दाएं किनारे पर रखें. |
center_vertical |
ऑब्जेक्ट को उसके साइज़ में बदलाव किए बिना, उसके कंटेनर के वर्टिकल सेंटर में रखें. |
fill_vertical |
अगर ज़रूरी हो, तो ऑब्जेक्ट का वर्टिकल साइज़ बढ़ाएं, ताकि यह अपने कंटेनर को पूरी तरह से भर सके. |
center_horizontal |
ऑब्जेक्ट को उसके कंटेनर के हॉरिज़ॉन्टल सेंटर में रखें, उसका साइज़ बदले बिना. |
fill_horizontal |
अगर ज़रूरत हो, तो ऑब्जेक्ट का हॉरिज़ॉन्टल साइज़ बढ़ाएं, ताकि यह अपने कंटेनर को पूरी तरह से भर सके.
|
center |
ऑब्जेक्ट को उसके कंटेनर के बीच में वर्टिकल और हॉरिज़ॉन्टल, दोनों ऐक्सिस में रखें, न कि
उसका आकार बदल रहा है. |
fill |
अगर ज़रूरत हो, तो ऑब्जेक्ट का हॉरिज़ॉन्टल और वर्टिकल साइज़ बड़ा करें, ताकि यह ऑब्जेक्ट को पूरी तरह से भर सके
कंटेनर. यह डिफ़ॉल्ट विकल्प है. |
clip_vertical |
बच्चे के ऊपरी और/या निचले किनारों को क्लिप करने के लिए सेट किया जा सकने वाला अन्य विकल्प
उसके कंटेनर की सीमाएं शामिल होती हैं. यह क्लिप लंबवत गुरुत्वाकर्षण पर आधारित है: शीर्ष गुरुत्वाकर्षण क्लिप
निचला किनारा, निचला गुरुत्वाकर्षण ऊपरी किनारे को क्लिप करता है, और कोई भी दोनों किनारों को क्लिप नहीं करता है.
|
clip_horizontal |
दूसरा विकल्प, जिसे इस तरह सेट किया जा सकता है कि बच्चे के बाएं और/या दाएं किनारे क्लिप किए जाएं
उसके कंटेनर की सीमाएं शामिल होती हैं. यह क्लिप हॉरिज़ॉन्टल गुरुत्वाकर्षण पर आधारित है: बायां गुरुत्वाकर्षण क्लिप
दाईं ओर से, दाईं ओर का गुरुत्वाकर्षण, बाएं किनारे को क्लिप करता है, और कोई भी दोनों किनारों को क्लिप नहीं करता है.
|
android:mipMap
- बूलियन. मिपमैप संकेत को चालू या बंद करता है. ज़्यादा जानकारी के लिए,
setHasMipMap()
पर जाएं.
डिफ़ॉल्ट मान असत्य है.
android:tileMode
- कीवर्ड. टाइल मोड के बारे में बताता है. टाइल मोड के सक्षम होने पर, बिटमैप
दोहराया गया. टाइल मोड चालू होने पर, ग्रेविटी को अनदेखा कर दिया जाता है.
इनमें से कोई एक कॉन्सटैंट वैल्यू होनी चाहिए:
वैल्यू | ब्यौरा |
disabled |
बिटमैप को टाइल न करें. यह डिफ़ॉल्ट मान है. |
clamp |
अगर शेडर अपनी मूल सीमाओं से बाहर खींचता है, तो किनारे का रंग दोहराएं |
repeat |
शेडर की इमेज को हॉरिज़ॉन्टल या वर्टिकल तौर पर दोहराएं. |
mirror |
शेडर की इमेज को हॉरिज़ॉन्टल या वर्टिकल तौर पर, अलग-अलग मिरर इमेज को दोहराएं, ताकि
आस-पास की इमेज को हमेशा जोड़ें. |
- उदाहरण:
-
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/icon"
android:tileMode="repeat" />
- यह भी देखें:
-
नाइन-पैच
NinePatch
एक PNG इमेज होती है, जिसमें स्ट्रेच किए जा सकने वाले इलाके तय किए जा सकते हैं
जिसे Android तब स्केल करता है, जब व्यू में मौजूद कॉन्टेंट, इमेज की सामान्य सीमाओं से ज़्यादा हो जाता है. आपने लोगों तक पहुंचाया मुफ़्त में
आम तौर पर, इस तरह की इमेज को उस व्यू के बैकग्राउंड के तौर पर असाइन करते हैं जिसमें कम से कम एक डाइमेंशन सेट हो
"wrap_content"
तक.
कॉन्टेंट के हिसाब से व्यू बढ़ने पर, 9-पैच वाली इमेज
को भी व्यू के साइज़ से मैच करने के लिए स्केल किया जाता है. नौ पैच वाली इमेज के इस्तेमाल का उदाहरण
बैकग्राउंड का इस्तेमाल, Android के स्टैंडर्ड Button
विजेट के लिए किया जाता है. यह विजेट,
टेक्स्ट (या चित्र) को बटन के अंदर समायोजित कर सकता है.
किसी सामान्य बिटमैप की तरह, आप नौ-पैच फ़ाइल का सीधे रेफ़रंस दे सकते हैं
या एक्सएमएल के ज़रिए तय किए गए किसी संसाधन से.
स्ट्रैच किए जा सकने वाले इलाकों वाली नाइन-पैच फ़ाइल बनाने के बारे में पूरी जानकारी पाने के लिए,
साइज़ बदलने लायक बिटमैप (9-पैच फ़ाइलें) बनाना देखें.
नाइन-पैच फ़ाइल
- फ़ाइल की जगह:
res/drawable/filename.9.png
फ़ाइल का नाम, रिसॉर्स आईडी है
- कंपाइल किए गए संसाधन डेटा टाइप:
NinePatchDrawable
के लिए रिसॉर्स पॉइंटर
- संसाधन का रेफ़रंस:
- अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
Java में:
R.drawable.filename
एक्सएमएल में: @[package:]drawable/filename
- उदाहरण:
res/drawable/myninepatch.9.png
पर सेव की गई इमेज के साथ, यह लेआउट एक्सएमएल
किसी व्यू पर नौ पैच लागू करता है:
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:background="@drawable/myninepatch" />
- यह भी देखें:
-
एक्सएमएल नाइन-पैच
एक्सएमएल में नाइन-पैच एक ऐसा संसाधन है जो नौ पैच वाली फ़ाइल पर ले जाता है. एक्सएमएल यह कर सकती है
चित्र के लिए डायदरिंग तय करें.
- फ़ाइल की जगह:
res/drawable/filename.xml
फ़ाइल का नाम, रिसॉर्स आईडी है
- कंपाइल किए गए संसाधन डेटा टाइप:
NinePatchDrawable
के लिए रिसॉर्स पॉइंटर
- संसाधन का रेफ़रंस:
- अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
Java में:
R.drawable.filename
एक्सएमएल में: @[package:]drawable/filename
- सिंटैक्स:
-
<?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"] />
- एलिमेंट:
-
<nine-patch>
- ज़रूरी है. नौ पैच सोर्स और उसकी प्रॉपर्टी के बारे में बताता है.
विशेषताएं:
xmlns:android
- स्ट्रिंग. ज़रूरी है. एक्सएमएल नेमस्पेस तय करता है, जिसे
"http://schemas.android.com/apk/res/android"
.
android:src
- ड्रॉ करने लायक संसाधन. ज़रूरी है. नाइन-पैच का रेफ़रंस
फ़ाइल से लिए जाते हैं.
android:dither
- बूलियन. अगर बिट मैप काम नहीं करता है, तो इससे बिट मैप में डेटा को डिदर करने की सुविधा चालू या बंद होती है
उनका पिक्सल कॉन्फ़िगरेशन स्क्रीन के जैसा ही होता है, जैसे कि RGB 565 पर ARGB 8888 बिटमैप
स्क्रीन.
- उदाहरण:
-
<?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" />
लेयर की सूची
LayerDrawable
एक ड्रॉ करने लायक ऑब्जेक्ट है
जो अन्य ड्रॉ करने लायक आइटम की कैटगरी को मैनेज करता है. सूची में ड्रॉ की जाने वाली हर चीज़,
सूची. सूची में अंतिम ड्रॉएबल शीर्ष पर बनाया जाता है.
ड्रॉएबल की हर सुविधा को, एक <layer-list>
एलिमेंट में मौजूद <item>
एलिमेंट से दिखाया जाता है.
- फ़ाइल की जगह:
res/drawable/filename.xml
फ़ाइल का नाम, रिसॉर्स आईडी है
- कंपाइल किए गए संसाधन डेटा टाइप:
LayerDrawable
के लिए रिसॉर्स पॉइंटर
- संसाधन का रेफ़रंस:
- अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
Java में:
R.drawable.filename
एक्सएमएल में: @[package:]drawable/filename
- सिंटैक्स:
-
<?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>
- एलिमेंट:
-
<layer-list>
- ज़रूरी है. यह रूट एलिमेंट होना चाहिए. एक या ज़्यादा
<item>
एलिमेंट शामिल हैं.
विशेषताएं:
xmlns:android
- स्ट्रिंग. ज़रूरी है. एक्सएमएल नेमस्पेस तय करता है, जिसे
"http://schemas.android.com/apk/res/android"
.
<item>
- ड्रॉ करने लायक लेयर में, ड्रॉ करने लायक ऐसी जगह तय करता है जो इसके एट्रिब्यूट के हिसाब से तय होती है.
<layer-list>
एलिमेंट का चाइल्ड होना चाहिए. चाइल्ड <bitmap>
स्वीकार किया जाता है
एलिमेंट.
विशेषताएं:
android:drawable
- ड्रॉ करने लायक संसाधन. ज़रूरी है. ड्रॉएबल का रेफ़रंस
संसाधन.
android:id
- संसाधन आईडी. ड्रॉएबल के लिए यूनीक संसाधन आईडी. नया संसाधन बनाने के लिए
इस आइटम का आईडी, इस फ़ॉर्म का इस्तेमाल करें:
"@+id/name"
. प्लस का चिह्न संकेत देता है कि इसे एक नए नाम के रूप में बनाया गया है
आईडी. इस आइडेंटिफ़ायर का इस्तेमाल इन कामों के लिए किया जा सकता है
ड्रॉएबल को View.findViewById()
या Activity.findViewById()
की मदद से वापस पाएं और उसमें बदलाव करें.
android:top
- डाइमेंशन. डाइमेंशन वैल्यू या डाइमेंशन रिसॉर्स के तौर पर, ऊपर का ऑफ़सेट.
android:right
- डाइमेंशन. डाइमेंशन वैल्यू या डाइमेंशन रिसॉर्स के तौर पर दायां ऑफ़सेट.
android:bottom
- डाइमेंशन. डाइमेंशन वैल्यू या डाइमेंशन रिसॉर्स के तौर पर, सबसे नीचे मौजूद ऑफ़सेट.
android:left
- डाइमेंशन. डाइमेंशन वैल्यू या डाइमेंशन रिसॉर्स के तौर पर बायां ऑफ़सेट.
ड्रॉ किए जा सकने वाले सभी आइटम का साइज़, उसे डिफ़ॉल्ट तौर पर व्यू के साइज़ में फ़िट करने के लिए स्केल किया जाता है. इसलिए,
अपनी इमेज को अलग-अलग जगह पर लेयर सूची में रखने से व्यू का साइज़ बढ़ सकता है और
कुछ इमेज के साइज़ को ज़रूरत के हिसाब से स्केल भी किया जा सकता है.
इससे बचने के लिए
सूची में मौजूद आइटम को स्केल करें, ड्रॉ करने लायक बताने के लिए <item>
एलिमेंट में <bitmap>
एलिमेंट का इस्तेमाल करें. साथ ही, किसी ऐसी चीज़ के लिए ग्रैविटी तय करें जो उससे जुड़ी हुई नहीं है
स्केल, जैसे कि "center"
. उदाहरण के लिए, नीचे दिया गया <item>
किसी आइटम के बारे में बताता है
जो अपने कंटेनर व्यू में फ़िट होने के लिए फ़िट हो जाता है:
<item android:drawable="@drawable/image" />
इस उदाहरण में, स्केलिंग से बचने के लिए, बीच में मौजूद <bitmap>
एलिमेंट का इस्तेमाल किया गया है
गुरुत्वाकर्षण:
<item>
<bitmap android:src="@drawable/image"
android:gravity="center" />
</item>
- उदाहरण:
- एक्सएमएल फ़ाइल
res/drawable/layers.xml
पर सेव की गई:
<?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>
इस उदाहरण में, ड्रॉ करने लायक एट्रिब्यूट के बारे में बताने के लिए, नेस्ट किए गए <bitmap>
एलिमेंट का इस्तेमाल किया गया है
"center"
ग्रैविटी वाले हर आइटम के लिए संसाधन. इससे पक्का होता है कि कोई भी इमेज,
कंटेनर के साइज़ को फ़िट कर सकते हैं, क्योंकि ऑफ़सेट इमेज की वजह से साइज़ बदलना है.
यह लेआउट एक्सएमएल किसी व्यू पर ड्रॉएबल लागू करता है:
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/layers" />
इसकी वजह से, मुझे ऑफ़सेट वाली इमेज का एक स्टैक मिल गया है:
- यह भी देखें:
-
राज्य की सूची
StateListDrawable
, ड्रॉ करने लायक ऑब्जेक्ट है. इसके बारे में एक्सएमएल में बताया गया है
जिसमें एक ही ग्राफ़िक को दिखाने के लिए कई इमेज का इस्तेमाल किया गया है. यह सुविधा,
ऑब्जेक्ट को हाइलाइट करने की सुविधा मिलती है. उदाहरण के लिए, Button
के विजेट की स्थिति पर टैप करके, फ़ोकस किया जा सकता है,
या कोई नहीं; ड्रॉ करने लायक राज्य की सूची का इस्तेमाल करके, हर एक फ़ाइल के लिए अलग-अलग बैकग्राउंड इमेज दी जा सकती है
राज्य.
एक्सएमएल फ़ाइल में, राज्यों की सूची के बारे में बताया गया हो. हर ग्राफ़िक को <selector>
एलिमेंट में मौजूद <item>
एलिमेंट से दिखाया जाता है. हर <item>
उस स्थिति के बारे में बताने के लिए अलग-अलग एट्रिब्यूट का इस्तेमाल करता है जिसमें इसे ग्राफ़िक के तौर पर इस्तेमाल किया जाता है
ड्रॉ करने लायक है.
हर स्थिति में बदलाव के दौरान, राज्य की सूची ऊपर से नीचे दिखाई जाती है. साथ ही, सूची में पहला आइटम जो
का इस्तेमाल किया गया है. यह चुनाव "सबसे अच्छे" के आधार पर नहीं है
मैच करता है," बल्कि पहला आइटम जो राज्य के तय की गई शर्तों को पूरा करता हो.
- फ़ाइल की जगह:
res/drawable/filename.xml
फ़ाइल का नाम, रिसॉर्स आईडी है
- कंपाइल किए गए संसाधन डेटा टाइप:
StateListDrawable
के लिए रिसॉर्स पॉइंटर
- संसाधन का रेफ़रंस:
- अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
Java में:
R.drawable.filename
एक्सएमएल में: @[package:]drawable/filename
- सिंटैक्स:
-
<?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>
- एलिमेंट:
-
<selector>
- ज़रूरी है. यह रूट एलिमेंट होना चाहिए. एक या ज़्यादा
<item>
एलिमेंट शामिल हैं.
विशेषताएं:
xmlns:android
- स्ट्रिंग. ज़रूरी है. एक्सएमएल नेमस्पेस तय करता है, जिसे
"http://schemas.android.com/apk/res/android"
.
android:constantSize
- बूलियन. अगर ड्रॉएबल के रिपोर्ट किए गए अंदरूनी साइज़ की स्थिति में बदलाव नहीं होता है, तो सही है
बदलाव (सभी राज्यों में साइज़ ज़्यादा से ज़्यादा नहीं होना चाहिए); अगर इवेंट साइज़ के हिसाब से साइज़ अलग-अलग है, तो गलत
मौजूदा स्थिति. डिफ़ॉल्ट रूप से, यह वैल्यू 'गलत' पर सेट होती है.
android:dither
- बूलियन. अगर बिट मैप में वही पिक्सेल नहीं है, तो बिट मैप में डायदरिंग सक्षम करने के लिए सही
स्क्रीन जैसा कॉन्फ़िगरेशन, जैसे कि RGB 565 स्क्रीन पर ARGB 8888 बिटमैप; गलत
डीदरिंग बंद करें. डिफ़ॉल्ट रूप से, 'सही' होता है.
android:variablePadding
- बूलियन. अगर ड्रॉएबल की पैडिंग, मौजूदा ट्रैफ़िक के हिसाब से बदलती है, तो वैल्यू 'सही' होगी
चुना गया राज्य; अगर पैडिंग अधिकतम सीमा पर आधारित है, तो
सभी राज्यों की पैडिंग (जगह) शामिल है. इस सुविधा को चालू करने के लिए ज़रूरी है कि आप
स्थिति बदलने पर लेआउट करता है, जो अक्सर काम नहीं करता. डिफ़ॉल्ट रूप से, यह वैल्यू 'गलत' पर सेट होती है.
<item>
- यह तय करता है कि कुछ राज्यों में, ड्रॉ किए जा सकने वाले एलिमेंट का इस्तेमाल किया जा सकेगा. इसके बारे में एट्रिब्यूट के बारे में बताया गया है.
<selector>
एलिमेंट का चाइल्ड.
विशेषताएं:
android:drawable
- ड्रॉ करने लायक संसाधन. ज़रूरी है. ड्रॉ करने लायक संसाधन का रेफ़रंस.
android:state_pressed
- बूलियन. अगर इस आइटम का इस्तेमाल, ऑब्जेक्ट पर टैप किए जाने पर किया जाता है, तो वैल्यू 'सही' होगी. जैसे, जब किसी बटन पर टैप किया गया हो
छुआ जाता है; अगर इस आइटम का इस्तेमाल डिफ़ॉल्ट और बिना टैप किए हुए तरीके में किया जाता है, तो यह गलत है.
android:state_focused
- बूलियन. अगर ऑब्जेक्ट में इनपुट फ़ोकस मौजूद होने पर इस आइटम का इस्तेमाल किया जाता है, तो वैल्यू 'सही' होगी,
जैसे, जब उपयोगकर्ता कोई टेक्स्ट इनपुट चुनता है; गलत है, अगर इस आइटम का डिफ़ॉल्ट रूप से इस्तेमाल किया जाता है,
फ़ोकस नहीं किया जा सकता.
android:state_hovered
- बूलियन. सही है, अगर इस आइटम का इस्तेमाल तब किया जाता है, जब कर्सर को ऑब्जेक्ट पर घुमाया जाता है;
अगर इस आइटम का इस्तेमाल डिफ़ॉल्ट, बिना कर्सर वाले स्थिति में किया जाता है, तो यह गलत है. अक्सर, यह
ड्रॉएबल उसी ड्रॉएबल का इस्तेमाल किया जा सकता है जिसका इस्तेमाल "फ़ोकस किया गया" राज्य.
एपीआई लेवल 14 में पेश किया गया.
android:state_selected
- बूलियन. अगर इस आइटम का इस्तेमाल तब किया जाता है, जब ऑब्जेक्ट मौजूदा है
डायरेक्शनल कंट्रोल के साथ नेविगेट करते समय, उपयोगकर्ता को चुनना. जैसे, सूची में नेविगेट करते समय
डी-पैड के साथ; अगर इस आइटम का इस्तेमाल तब किया जाता है, जब ऑब्जेक्ट को नहीं चुना जाता, तो यह गलत होती है.
चुनी गई स्थिति का इस्तेमाल तब किया जाता है, जब android:state_focused
काफ़ी न हो.
जैसे, जब सूची के व्यू में फ़ोकस हो और इसके अंदर मौजूद किसी आइटम को डी-पैड से चुना गया हो.
android:state_checkable
- बूलियन. अगर इस आइटम का इस्तेमाल तब किया जाता है, जब ऑब्जेक्ट को चुना जा सकता है, तो 'सही'; गलत है, अगर यह
आइटम का इस्तेमाल तब किया जाता है, जब ऑब्जेक्ट चुनने लायक न हो. यह सिर्फ़ तब काम आता है, जब ऑब्जेक्ट यह कर सके
चुनने और न चुनने लायक विजेट के बीच ट्रांज़िशन.
android:state_checked
- बूलियन. अगर इस आइटम का इस्तेमाल, ऑब्जेक्ट के चुने जाने पर किया जाता है, तो 'सही'; गलत है, अगर यह
का इस्तेमाल तब किया जाता है, जब ऑब्जेक्ट से चुना हुआ का निशान हटा दिया जाता है.
android:state_enabled
- बूलियन. अगर इस आइटम का इस्तेमाल ऑब्जेक्ट के चालू होने पर किया जाता है, तो सही है,
जिसका मतलब है टच या क्लिक इवेंट पाने की सुविधा; गलत है अगर इसका इस्तेमाल तब किया जाता है जब ऑब्जेक्ट
बंद किया गया.
android:state_activated
- बूलियन. सही है, अगर इस आइटम का इस्तेमाल तब किया जाता है, जब ऑब्जेक्ट को इस तौर पर चालू किया जाता है
स्थायी चुनाव, जैसे कि "हाइलाइट" स्थायी सूची में पहले से चुना गया सूची आइटम
नेविगेशन व्यू; अगर ऑब्जेक्ट के चालू न होने पर इसका इस्तेमाल किया जाता है, तो यह वैल्यू गलत होती है.
एपीआई लेवल 11 में पेश किया गया.
android:state_window_focused
- बूलियन. 'सही है' अगर इस आइटम का इस्तेमाल तब किया जाता है जब ऐप्लिकेशन विंडो पर फ़ोकस हो, यानी
ऐप्लिकेशन को फ़ोरग्राउंड में दिखाया गया हो; गलत है, अगर ऐप्लिकेशन में इस आइटम का इस्तेमाल किया जाता है
विंडो पर फ़ोकस नहीं होता, उदाहरण के लिए, अगर नोटिफ़िकेशन शेड नीचे खींचा गया हो या कोई डायलॉग दिखता हो.
ध्यान दें: Android, इन स्थितियों की सूची में पहला आइटम लागू करता है
ऑब्जेक्ट की मौजूदा स्थिति से मेल खाता है. इसलिए, अगर सूची के पहले आइटम में
कोई भी पिछली राज्य विशेषता नहीं है, तो यह हर बार लागू होता है. इसलिए, आपको अपने
डिफ़ॉल्ट वैल्यू को हमेशा आखिरी के तौर पर सेट करें, जैसा कि इस उदाहरण में दिखाया गया है.
- उदाहरण:
- एक्सएमएल फ़ाइल
res/drawable/button.xml
पर सेव की गई:
<?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>
यह लेआउट एक्सएमएल, बटन पर क्लिक की जा सकने वाली स्थिति की सूची को लागू करता है:
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:background="@drawable/button" />
- यह भी देखें:
-
लेवल की सूची
यह एक ऐसा ड्रॉबल है जो कई वैकल्पिक आइटम को मैनेज करता है. साथ ही, हर एक को एक तय संख्या असाइन की जाती है
वैल्यू. setLevel()
के साथ ड्रॉएबल का लेवल मान सेट करने से ड्रॉ करने लायक संसाधन इसमें लोड होता है
स्तर सूची जिसमें android:maxLevel
मान से ज़्यादा या उसके बराबर है
पास की गई है.
- फ़ाइल की जगह:
res/drawable/filename.xml
फ़ाइल का नाम, रिसॉर्स आईडी है
- कंपाइल किए गए संसाधन डेटा टाइप:
LevelListDrawable
के लिए रिसॉर्स पॉइंटर
- संसाधन का रेफ़रंस:
- अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
Java में:
R.drawable.filename
एक्सएमएल में: @[package:]drawable/filename
- सिंटैक्स:
-
<?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>
- एलिमेंट:
-
<level-list>
- ज़रूरी है. यह रूट एलिमेंट होना चाहिए. एक या ज़्यादा
<item>
एलिमेंट शामिल हैं.
विशेषताएं:
xmlns:android
- स्ट्रिंग. ज़रूरी है. एक्सएमएल नेमस्पेस तय करता है, जिसे
"http://schemas.android.com/apk/res/android"
.
<item>
- खास लेवल पर इस्तेमाल किए जाने वाले ड्रॉएबल के बारे में बताता है.
विशेषताएं:
android:drawable
- ड्रॉ करने लायक संसाधन. ज़रूरी है. ड्रॉएबल का रेफ़रंस
किया जा सकता है.
android:maxLevel
- पूरी संख्या. इस आइटम के लिए अनुमति वाला ज़्यादा से ज़्यादा लेवल.
android:minLevel
- पूरी संख्या. इस आइटम के लिए अनुमति का कम से कम लेवल.
- उदाहरण:
-
<?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>
इसे View
पर लागू करने के बाद, setLevel()
या setImageLevel()
से लेवल को बदला जा सकता है.
- यह भी देखें:
-
ड्रॉ करने लायक ट्रांज़िशन
TransitionDrawable
एक ड्रॉ करने लायक ऑब्जेक्ट है
जो दो अन्य ड्रॉ करने लायक संसाधनों के बीच क्रॉस-फ़ेड हो सकता है.
ड्रॉएबल की हर सुविधा को, एक <transition>
एलिमेंट में मौजूद <item>
एलिमेंट से दिखाया जाता है. दो से ज़्यादा आइटम का इस्तेमाल नहीं किया जा सकता. ट्रांज़िशन को आगे बढ़ाने के लिए, कॉल करें
startTransition()
. यहां की यात्रा पर हूं
पीछे जाने के लिए, reverseTransition()
पर कॉल करें.
- फ़ाइल की जगह:
res/drawable/filename.xml
फ़ाइल का नाम, रिसॉर्स आईडी है
- कंपाइल किए गए संसाधन डेटा टाइप:
TransitionDrawable
के लिए रिसॉर्स पॉइंटर
- संसाधन का रेफ़रंस:
- अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
Java में:
R.drawable.filename
एक्सएमएल में: @[package:]drawable/filename
- सिंटैक्स:
-
<?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>
- एलिमेंट:
-
<transition>
- ज़रूरी है. यह रूट एलिमेंट होना चाहिए. एक या ज़्यादा
<item>
एलिमेंट शामिल हैं.
विशेषताएं:
xmlns:android
- स्ट्रिंग. ज़रूरी है. एक्सएमएल नेमस्पेस तय करता है, जिसे
"http://schemas.android.com/apk/res/android"
.
<item>
- ड्रॉ करने लायक ट्रांज़िशन के हिस्से के तौर पर इस्तेमाल किए जाने वाले ड्रॉएबल के बारे में बताता है.
<transition>
एलिमेंट का चाइल्ड होना चाहिए. चाइल्ड <bitmap>
स्वीकार किया जाता है
एलिमेंट.
विशेषताएं:
android:drawable
- ड्रॉ करने लायक संसाधन. ज़रूरी है. ड्रॉएबल का रेफ़रंस
संसाधन.
android:id
- संसाधन आईडी. ड्रॉएबल के लिए यूनीक संसाधन आईडी. नया संसाधन बनाने के लिए
इस आइटम का आईडी, इस फ़ॉर्म का इस्तेमाल करें:
"@+id/name"
. प्लस का चिह्न संकेत देता है कि इसे एक नए नाम के रूप में बनाया गया है
आईडी. इस आइडेंटिफ़ायर का इस्तेमाल इन कामों के लिए किया जा सकता है
ड्रॉएबल को View.findViewById()
या Activity.findViewById()
की मदद से वापस पाएं और उसमें बदलाव करें.
android:top
- पूरी संख्या. पिक्सल में ऊपर का ऑफ़सेट.
android:right
- पूरी संख्या. पिक्सल में दायां ऑफ़सेट.
android:bottom
- पूरी संख्या. नीचे का ऑफ़सेट पिक्सल में.
android:left
- पूरी संख्या. पिक्सल में बायां ऑफ़सेट.
- उदाहरण:
- एक्सएमएल फ़ाइल
res/drawable/transition.xml
पर सेव की गई:
<?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>
यह लेआउट एक्सएमएल किसी व्यू पर ड्रॉएबल लागू करता है:
<ImageButton
android:id="@+id/button"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/transition" />
और नीचे दिया गया कोड पहले आइटम से दूसरे आइटम में 500 मि॰से॰ का ट्रांज़िशन करता है:
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);
}
- यह भी देखें:
-
इनसेट ड्रॉएबल
एक्सएमएल में तय किया गया ड्रॉबल, जिसमें तय की गई दूरी से ड्रॉ करने लायक कोई दूसरा एलिमेंट शामिल होता है. यह काम का है
जब किसी व्यू के लिए ऐसा बैकग्राउंड चाहिए जो व्यू की असल सीमाओं से कम हो.
- फ़ाइल की जगह:
res/drawable/filename.xml
फ़ाइल का नाम, रिसॉर्स आईडी है
- कंपाइल किए गए संसाधन डेटा टाइप:
InsetDrawable
के लिए रिसॉर्स पॉइंटर
- संसाधन का रेफ़रंस:
- अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
Java में:
R.drawable.filename
एक्सएमएल में: @[package:]drawable/filename
- सिंटैक्स:
-
<?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" />
- एलिमेंट:
-
<inset>
- ज़रूरी है. इनसेट ड्रॉएबल के बारे में बताता है. यह रूट एलिमेंट होना चाहिए.
विशेषताएं:
xmlns:android
- स्ट्रिंग. ज़रूरी है. एक्सएमएल नेमस्पेस तय करता है, जिसे
"http://schemas.android.com/apk/res/android"
.
android:drawable
- ड्रॉ करने लायक संसाधन. ज़रूरी है. ड्रॉएबल का रेफ़रंस
किया जा सकता है.
android:insetTop
- डाइमेंशन. डाइमेंशन वैल्यू या डाइमेंशन रिसॉर्स के तौर पर, सबसे ऊपर मौजूद इनसेट.
android:insetRight
- डाइमेंशन. डाइमेंशन वैल्यू या डाइमेंशन रिसॉर्स के तौर पर सही इनसेट.
android:insetBottom
- डाइमेंशन. डाइमेंशन वैल्यू या डाइमेंशन रिसॉर्स के तौर पर, सबसे नीचे मौजूद इनसेट.
android:insetLeft
- डाइमेंशन. डाइमेंशन वैल्यू या डाइमेंशन रिसॉर्स के तौर पर बायां इनसेट.
- उदाहरण:
-
<?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" />
- यह भी देखें:
-
ड्रॉ करने लायक क्लिप
एक्सएमएल में एक ऐसा ड्रॉबल तय किया गया है जो इस ड्रॉएबल के मौजूदा लेवल के आधार पर, किसी दूसरे ड्रॉबल को क्लिप करता है. आपने लोगों तक पहुंचाया मुफ़्त में
यह कंट्रोल किया जा सकता है कि लेवल के हिसाब से, ड्रॉ करने लायक चाइल्ड कार्ड की चौड़ाई और ऊंचाई कितनी होगी
इसे अपने कंटेनर में कहां रखा जाए, इसे कंट्रोल करने के लिए गुरुत्वाकर्षण के रूप में इस्तेमाल किया जाता है. अक्सर लागू करने के लिए इस्तेमाल किए जाते हैं
जैसे कि प्रोग्रेस बार.
- फ़ाइल की जगह:
res/drawable/filename.xml
फ़ाइल का नाम, रिसॉर्स आईडी है
- कंपाइल किए गए संसाधन डेटा टाइप:
ClipDrawable
के लिए रिसॉर्स पॉइंटर
- संसाधन का रेफ़रंस:
- अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
Java में:
R.drawable.filename
एक्सएमएल में: @[package:]drawable/filename
- सिंटैक्स:
-
<?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"] />
- एलिमेंट:
-
<clip>
- ज़रूरी है. ड्रॉ की जा सकने वाली क्लिप के बारे में बताता है. यह रूट एलिमेंट होना चाहिए.
विशेषताएं:
xmlns:android
- स्ट्रिंग. ज़रूरी है. एक्सएमएल नेमस्पेस तय करता है, जिसे
"http://schemas.android.com/apk/res/android"
.
android:drawable
- ड्रॉ करने लायक संसाधन. ज़रूरी है. ड्रॉएबल का रेफ़रंस
संसाधन होना चाहिए.
android:clipOrientation
- कीवर्ड. क्लिप का ओरिएंटेशन.
इनमें से कोई एक कॉन्सटैंट वैल्यू होनी चाहिए:
वैल्यू | ब्यौरा |
horizontal |
ड्रॉ करने लायक हिस्से को हॉरिज़ॉन्टल तौर पर क्लिप करें. |
vertical |
ड्रॉ करने लायक हिस्से को वर्टिकल तौर पर क्लिप करें. |
android:gravity
- कीवर्ड. बताता है कि ड्रॉ किए जा सकने वाले वीडियो में कहां क्लिप करनी है.
इनमें से एक या एक से ज़्यादा कॉन्सटेंट वैल्यू होनी चाहिए, जिन्हें |
से अलग किया गया हो:
वैल्यू | ब्यौरा |
top |
ऑब्जेक्ट को उसके साइज़ में बदलाव किए बिना, उसके कंटेनर के ऊपर रखें. जब clipOrientation "vertical" होता है, तो क्लिप ड्रॉ करने लायक के निचले हिस्से में होती है. |
bottom |
ऑब्जेक्ट को उसके कंटेनर के नीचे रखें, उसका आकार बदले बिना. जब clipOrientation की वैल्यू "vertical" होती है, तब ड्रॉ की जा सकने वाली फ़ाइल के सबसे ऊपर क्लिपिंग की जाती है. |
left |
ऑब्जेक्ट को उसके आकार में बदलाव किए बिना उसके कंटेनर के बाएं किनारे पर रखें. यह है
डिफ़ॉल्ट. जब clipOrientation "horizontal" होता है, तो क्लिपिंग
ड्रॉ करने लायक है. |
right |
ऑब्जेक्ट को उसके आकार में बदलाव किए बिना उसके कंटेनर के दाएं किनारे पर रखें. जब clipOrientation "horizontal" होता है, तो क्लिपिंग इसके बाईं ओर होती है
ड्रॉ करने लायक है. |
center_vertical |
ऑब्जेक्ट को उसके साइज़ में बदलाव किए बिना, उसके कंटेनर के वर्टिकल सेंटर में रखें. क्लिपिंग व्यवहार करती है
ठीक वैसे ही जैसे गुरुत्वाकर्षण "center" होने पर होता है. |
fill_vertical |
अगर ज़रूरी हो, तो ऑब्जेक्ट का वर्टिकल साइज़ बढ़ाएं, ताकि यह अपने कंटेनर को पूरी तरह से भर सके. जब clipOrientation "vertical" होता है, तो कोई क्लिपिंग नहीं होती, क्योंकि ड्रॉ करने योग्य
वर्टिकल स्पेस (जब तक ड्रॉ करने लायक लेवल 0 न हो, इस स्थिति में यह नहीं दिखेगा). |
center_horizontal |
ऑब्जेक्ट को उसके साइज़ में बदलाव किए बिना, उसके कंटेनर के हॉरिज़ॉन्टल सेंटर में रखें.
क्लिपिंग भी उसी तरह काम करती है जैसे गुरुत्वाकर्षण "center" होने पर किया जाता है. |
fill_horizontal |
अगर ज़रूरत हो, तो ऑब्जेक्ट का हॉरिज़ॉन्टल साइज़ बढ़ाएं, ताकि यह अपने कंटेनर को पूरी तरह से भर सके. टास्क कब शुरू होगा
clipOrientation "horizontal" है, कोई क्लिपिंग नहीं होती, क्योंकि ड्रॉ करने योग्य
हॉरिज़ॉन्टल स्पेस (जब तक ड्रॉ करने लायक लेवल 0 न हो, इस स्थिति में यह नहीं दिखेगा).
|
center |
ऑब्जेक्ट को उसके कंटेनर के बीच में वर्टिकल और हॉरिज़ॉन्टल, दोनों ऐक्सिस में रखें, न कि
उसका आकार बदल रहा है. जब clipOrientation "horizontal" होता है, तो क्लिपिंग बाईं और दाईं ओर होती है. जब clipOrientation "vertical" होता है, तो ऊपर और नीचे क्लिपिंग होती है. |
fill |
अगर ज़रूरत हो, तो ऑब्जेक्ट का हॉरिज़ॉन्टल और वर्टिकल साइज़ बड़ा करें, ताकि यह ऑब्जेक्ट को पूरी तरह से भर सके
कंटेनर. कोई क्लिपिंग नहीं होती क्योंकि ड्रॉ करने योग्य
हॉरिज़ॉन्टल और वर्टिकल स्पेस (अगर ड्रॉ करने लायक लेवल 0 न हो, इस मामले में यह
दिखाई देता है). |
clip_vertical |
बच्चे के ऊपरी और/या निचले किनारों को क्लिप करने के लिए सेट किया जा सकने वाला अन्य विकल्प
उसके कंटेनर की सीमाएं शामिल होती हैं. यह क्लिप लंबवत गुरुत्वाकर्षण पर आधारित है: शीर्ष गुरुत्वाकर्षण क्लिप
निचला किनारा, निचला गुरुत्वाकर्षण ऊपरी किनारे को क्लिप करता है, और कोई भी दोनों किनारों को क्लिप नहीं करता है.
|
clip_horizontal |
दूसरा विकल्प, जिसे इस तरह सेट किया जा सकता है कि बच्चे के बाएं और/या दाएं किनारे क्लिप किए जाएं
उसके कंटेनर की सीमाएं शामिल होती हैं. यह क्लिप हॉरिज़ॉन्टल गुरुत्वाकर्षण पर आधारित है: बायां गुरुत्वाकर्षण क्लिप
दाईं ओर से, दाईं ओर का गुरुत्वाकर्षण, बाएं किनारे को क्लिप करता है, और कोई भी दोनों किनारों को क्लिप नहीं करता है.
|
- उदाहरण:
- एक्सएमएल फ़ाइल
res/drawable/clip.xml
पर सेव की गई:
<?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" />
व्यू में बनाई गई क्लिप को इस लेआउट एक्सएमएल में लागू किया जाता है:
<ImageView
android:id="@+id/image"
android:src="@drawable/clip"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
नीचे दिया गया कोड ड्रॉ करने लायक बन जाता है और क्लिपिंग की मात्रा बढ़ाकर
इमेज को धीरे-धीरे दिखाएँ:
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);
}
लेवल बढ़ाने से क्लिपिंग कम हो जाती है और इमेज धीरे-धीरे दिखती है. यह रहा
7,000 के लेवल पर:
ध्यान दें: डिफ़ॉल्ट लेवल 0 है, जो पूरी तरह से क्लिप किया गया है, ताकि इमेज
नहीं दिखता. जब लेवल 10,000 का होता है, तब इमेज क्लिप नहीं होती और पूरी तरह से दिखती है.
- यह भी देखें:
-
ड्रॉ करने लायक स्केल
एक्सएमएल में तय किया गया ड्रॉबल, जो किसी दूसरे ड्रॉएबल का साइज़ उसके मौजूदा साइज़ के आधार पर बदलता है
लेवल.
- फ़ाइल की जगह:
res/drawable/filename.xml
फ़ाइल का नाम, रिसॉर्स आईडी है
- कंपाइल किए गए संसाधन डेटा टाइप:
ScaleDrawable
के लिए रिसॉर्स पॉइंटर
- संसाधन का रेफ़रंस:
- अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
Java में:
R.drawable.filename
एक्सएमएल में: @[package:]drawable/filename
- सिंटैक्स:
-
<?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" />
- एलिमेंट:
-
<scale>
- ज़रूरी है. ड्रॉएबल स्केल के बारे में बताता है. यह रूट एलिमेंट होना चाहिए.
विशेषताएं:
xmlns:android
- स्ट्रिंग. ज़रूरी है. एक्सएमएल नेमस्पेस तय करता है, जिसे
"http://schemas.android.com/apk/res/android"
.
android:drawable
- ड्रॉ करने लायक संसाधन. ज़रूरी है. ड्रॉएबल का रेफ़रंस
संसाधन.
android:scaleGravity
- कीवर्ड. स्केलिंग के बाद गुरुत्वाकर्षण स्थिति तय करता है.
इनमें से एक या एक से ज़्यादा कॉन्सटेंट वैल्यू होनी चाहिए, जिन्हें |
से अलग किया गया हो:
वैल्यू | ब्यौरा |
top |
ऑब्जेक्ट को उसके साइज़ में बदलाव किए बिना, उसके कंटेनर के ऊपर रखें. |
bottom |
ऑब्जेक्ट को उसके कंटेनर के नीचे रखें, उसका आकार बदले बिना. |
left |
ऑब्जेक्ट को उसके आकार में बदलाव किए बिना उसके कंटेनर के बाएं किनारे पर रखें. यह है
डिफ़ॉल्ट. |
right |
ऑब्जेक्ट को उसके आकार में बदलाव किए बिना उसके कंटेनर के दाएं किनारे पर रखें. |
center_vertical |
ऑब्जेक्ट को उसके साइज़ में बदलाव किए बिना, उसके कंटेनर के वर्टिकल सेंटर में रखें. |
fill_vertical |
अगर ज़रूरी हो, तो ऑब्जेक्ट का वर्टिकल साइज़ बढ़ाएं, ताकि यह अपने कंटेनर को पूरी तरह से भर सके. |
center_horizontal |
ऑब्जेक्ट को उसके साइज़ में बदलाव किए बिना, उसके कंटेनर के हॉरिज़ॉन्टल सेंटर में रखें. |
fill_horizontal |
अगर ज़रूरत हो, तो ऑब्जेक्ट का हॉरिज़ॉन्टल साइज़ बढ़ाएं, ताकि यह अपने कंटेनर को पूरी तरह से भर सके.
|
center |
ऑब्जेक्ट को उसके कंटेनर के बीच में वर्टिकल और हॉरिज़ॉन्टल, दोनों ऐक्सिस में रखें, न कि
उसका आकार बदल रहा है. |
fill |
अगर ज़रूरत हो, तो ऑब्जेक्ट का हॉरिज़ॉन्टल और वर्टिकल साइज़ बड़ा करें, ताकि यह ऑब्जेक्ट को पूरी तरह से भर सके
कंटेनर. |
clip_vertical |
बच्चे के ऊपरी और/या निचले किनारों को क्लिप करने के लिए सेट किया जा सकने वाला अन्य विकल्प
उसके कंटेनर की सीमाएं शामिल होती हैं. यह क्लिप लंबवत गुरुत्वाकर्षण पर आधारित है: शीर्ष गुरुत्वाकर्षण क्लिप
निचला किनारा, निचला गुरुत्वाकर्षण ऊपरी किनारे को क्लिप करता है, और कोई भी दोनों किनारों को क्लिप नहीं करता है.
|
clip_horizontal |
दूसरा विकल्प, जिसे इस तरह सेट किया जा सकता है कि बच्चे के बाएं और/या दाएं किनारे क्लिप किए जाएं
उसके कंटेनर की सीमाएं शामिल होती हैं. यह क्लिप हॉरिज़ॉन्टल गुरुत्वाकर्षण पर आधारित है: बायां गुरुत्वाकर्षण क्लिप
दाईं ओर से, दाईं ओर का गुरुत्वाकर्षण, बाएं किनारे को क्लिप करता है, और कोई भी दोनों किनारों को क्लिप नहीं करता है.
|
android:scaleHeight
- प्रतिशत. स्केल की ऊंचाई, जिसे ड्रॉएबल के प्रतिशत के तौर पर दिखाया जाता है
सीमित. वैल्यू का फ़ॉर्मैट XX% है, जैसे कि 100% या 12.5%.
android:scaleWidth
- प्रतिशत. स्केल की चौड़ाई, जिसे ड्रॉएबल के प्रतिशत के तौर पर दिखाया जाता है
सीमित. वैल्यू का फ़ॉर्मैट XX% है, जैसे कि 100% या 12.5%.
- उदाहरण:
-
<?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%" />
- यह भी देखें:
-
आकार ड्रॉ करने योग्य
यह एक सामान्य आकार है, जिसके बारे में एक्सएमएल में बताया गया है.
- फ़ाइल की जगह:
res/drawable/filename.xml
फ़ाइल का नाम, रिसॉर्स आईडी है
- कंपाइल किए गए संसाधन डेटा टाइप:
GradientDrawable
के लिए रिसॉर्स पॉइंटर
- संसाधन का रेफ़रंस:
- अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
Java में:
R.drawable.filename
एक्सएमएल में: @[package:]drawable/filename
- सिंटैक्स:
-
<?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>
- एलिमेंट:
-
<shape>
- ज़रूरी है. आकृति ड्रॉ करने योग्य. यह रूट एलिमेंट होना चाहिए.
विशेषताएं:
xmlns:android
- स्ट्रिंग. ज़रूरी है. एक्सएमएल नेमस्पेस तय करता है, जिसे
"http://schemas.android.com/apk/res/android"
.
android:shape
- कीवर्ड. आकार का टाइप बताता है. मान्य मान हैं:
वैल्यू | ब्यौरा |
"rectangle" |
एक रेक्टैंगल, जो मौजूदा व्यू को भर देता है. यह डिफ़ॉल्ट आकार है. |
"oval" |
एक अंडाकार आकार, जो शामिल व्यू के डाइमेंशन के मुताबिक होता है. |
"line" |
एक हॉरिज़ॉन्टल लाइन, जो कंटेनमेंट व्यू की चौड़ाई में फैली होती है. यह
आकार की चौड़ाई को परिभाषित करने के लिए <stroke> एलिमेंट की ज़रूरत होती है
लाइन. |
"ring" |
रिंग का आकार. |
इन एट्रिब्यूट का इस्तेमाल सिर्फ़ तब किया जाता है, जब android:shape="ring"
:
android:innerRadius
- डाइमेंशन.
रिंग के अंदरूनी हिस्से (बीच में छेद) को डाइमेंशन वैल्यू या डाइमेंशन रिसॉर्स के तौर पर.
android:innerRadiusRatio
- फ़्लोट. अंदर का रेडियस
रिंग का एक हिस्सा है, जिसे रिंग की चौड़ाई के अनुपात में दिखाया जाता है. उदाहरण के लिए, अगर
android:innerRadiusRatio="5"
है, तो अंदरूनी रेडियस रिंग की चौड़ाई को 5 से भाग देने पर मिली वैल्यू के बराबर होगा. यह
मान को android:innerRadius
से बदल दिया गया है. डिफ़ॉल्ट वैल्यू 9 है.
android:thickness
- डाइमेंशन. इसकी मोटाई
रिंग, डाइमेंशन मान या डाइमेंशन संसाधन के तौर पर.
android:thicknessRatio
- फ़्लोट. रिंग की मोटाई
रिंग की चौड़ाई के अनुपात के तौर पर दिखाया जाता है. उदाहरण के लिए, अगर
android:thicknessRatio="2"
, तो
मोटाई, रिंग की चौड़ाई को 2 से भाग देने पर मिलती है. इस वैल्यू को android:innerRadius
से बदल दिया गया है. डिफ़ॉल्ट वैल्यू तीन है.
android:useLevel
- बूलियन. सही है, अगर इसका इस्तेमाल इस तौर पर किया जाता है
LevelListDrawable
. आम तौर पर, यह जानकारी गलत होती है,
या फिर हो सकता है कि आपका आकार न दिखे.
<corners>
- आकार के लिए गोल कोने बनाता है. यह सिर्फ़ तब लागू होता है, जब आकार कोई रेक्टैंगल होता है.
विशेषताएं:
android:radius
- डाइमेंशन. सभी कोनों का दायरा, डाइमेंशन वैल्यू या डाइमेंशन संसाधन के तौर पर. यह हर एक के लिए बदल जाता है
को फ़ॉलो करें.
android:topLeftRadius
- डाइमेंशन. सबसे ऊपर बाएं कोने का रेडियस, डाइमेंशन वैल्यू या डाइमेंशन रिसॉर्स के तौर पर.
android:topRightRadius
- डाइमेंशन. सबसे ऊपर दाएं कोने का दायरा, डाइमेंशन वैल्यू या डाइमेंशन संसाधन के तौर पर.
android:bottomLeftRadius
- डाइमेंशन. सबसे नीचे बाएं कोने का दायरा, डाइमेंशन वैल्यू या डाइमेंशन संसाधन के तौर पर.
android:bottomRightRadius
- डाइमेंशन. सबसे नीचे दाएं कोने का दायरा, डाइमेंशन वैल्यू या डाइमेंशन संसाधन के तौर पर.
ध्यान दें: शुरुआत में हर कोने के लिए एक कोने की जानकारी दी जानी चाहिए
रेडियस 1 से ज़्यादा है, तो कोई भी कोने गोल नहीं होंगे. अगर आपको कुछ खास कोने चाहिए
को राउंड नहीं किया जाना चाहिए, तो इसका मतलब है कि डिफ़ॉल्ट कोने को सेट करने के लिए android:radius
का इस्तेमाल करें
रेडियस 1 से ज़्यादा है और फिर हर कोने को खास मानों से बदल देता है
चाहते हैं, तो 0 ("0dp") दें, जहां आपको गोल कोने नहीं चाहिए.
<gradient>
- आकार के लिए ग्रेडिएंट रंग तय करता है.
विशेषताएं:
android:angle
- पूरी संख्या. ग्रेडिएंट के लिए कोण, डिग्री में. 0 को बाएं से दाएं, 90 को
नीचे से ऊपर. यह 45 का गुणांक होना चाहिए. डिफ़ॉल्ट वैल्यू 0 होती है.
android:centerX
- फ़्लोट. ग्रेडिएंट के केंद्र के लिए सापेक्ष X-स्थिति (0 - 1.0).
android:centerY
- फ़्लोट. ग्रेडिएंट के केंद्र के लिए सापेक्ष Y-स्थिति (0 - 1.0).
android:centerColor
- रंग. यह शुरुआती और आखिरी रंगों के बीच आने वाला वैकल्पिक रंग होता है.
हेक्साडेसिमल मान या रंग संसाधन.
android:endColor
- रंग. आखिरी रंग, हेक्साडेसिमल के रूप में
वैल्यू या रंग से जुड़े संसाधन शामिल करें.
android:gradientRadius
- फ़्लोट. ग्रेडिएंट का दायरा. यह ऑफ़र सिर्फ़
android:type="radial"
पर लागू होगा.
android:startColor
- रंग. शुरुआती रंग, हेक्साडेसिमल के रूप में
वैल्यू या रंग से जुड़े संसाधन शामिल करें.
android:type
- कीवर्ड. लागू किए जाने वाले ग्रेडिएंट पैटर्न का प्रकार. मान्य मान हैं:
वैल्यू | ब्यौरा |
"linear" |
एक लीनियर ग्रेडिएंट. यह डिफ़ॉल्ट विकल्प है. |
"radial" |
रेडियल ग्रेडिएंट. शुरुआती रंग, बीच का रंग होता है. |
"sweep" |
लाइन का स्वीप ग्रेडिएंट. |
android:useLevel
- बूलियन. अगर इसका इस्तेमाल
LevelListDrawable
के तौर पर किया जाता है, तो वैल्यू 'सही' होगी.
<padding>
- शामिल किए गए व्यू एलिमेंट पर लागू करने के लिए पैडिंग. यह व्यू की स्थिति को पैड करता है
सामग्री होती है, आकार नहीं.
विशेषताएं:
android:left
- डाइमेंशन. डाइमेंशन वैल्यू या डाइमेंशन रिसॉर्स के तौर पर बाईं ओर की पैडिंग.
android:top
- डाइमेंशन. डाइमेंशन वैल्यू या डाइमेंशन रिसॉर्स के तौर पर, टॉप पैडिंग.
android:right
- डाइमेंशन. डाइमेंशन वैल्यू या डाइमेंशन रिसॉर्स के तौर पर दाईं ओर की पैडिंग.
android:bottom
- डाइमेंशन. डाइमेंशन वैल्यू या डाइमेंशन रिसॉर्स के तौर पर, सबसे नीचे की पैडिंग.
<size>
- आकार का साइज़.
विशेषताएं:
android:height
- डाइमेंशन. आकार की ऊंचाई, डाइमेंशन वैल्यू या डाइमेंशन रिसॉर्स के तौर पर.
android:width
- डाइमेंशन. आकार की चौड़ाई, डाइमेंशन वैल्यू या डाइमेंशन रिसॉर्स के तौर पर.
ध्यान दें: डिफ़ॉल्ट रूप से, आकार कंटेनर के साइज़ के मुताबिक होता है
यहां बताए गए डाइमेंशन के हिसाब से रेवेन्यू जनरेट होता है. जब ImageView
में आकृति का इस्तेमाल किया जाता है, तो android:scaleType
को "center"
पर सेट करके स्केलिंग को सीमित किया जा सकता है.
<solid>
- आकार भरने के लिए ठोस रंग.
विशेषताएं:
android:color
- रंग. आकृति पर लागू किया जाने वाला रंग, हेक्साडेसिमल के रूप में
वैल्यू या रंग से जुड़े संसाधन शामिल करें.
<stroke>
- आकार के लिए स्ट्रोक लाइन.
विशेषताएं:
android:width
- डाइमेंशन. डाइमेंशन वैल्यू या डाइमेंशन रिसॉर्स के तौर पर लाइन की मोटाई.
android:color
- रंग. लाइन का रंग, जिससे
हेक्साडेसिमल मान या रंग संसाधन.
android:dashGap
- डाइमेंशन. डाइमेंशन वैल्यू या डाइमेंशन रिसॉर्स के तौर पर, लाइन डैश के बीच की दूरी. सिर्फ़ तब मान्य होता है, जब
android:dashWidth
सेट हो.
android:dashWidth
- डाइमेंशन. हर डैश लाइन का साइज़, डाइमेंशन वैल्यू या डाइमेंशन संसाधन के तौर पर. सिर्फ़ तब मान्य होता है, जब
android:dashGap
सेट हो.
- उदाहरण:
- एक्सएमएल फ़ाइल
res/drawable/gradient_box.xml
पर सेव की गई:
<?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>
यह लेआउट एक्सएमएल, व्यू में बनाए जा सकने वाले आकार को लागू करता है:
<TextView
android:background="@drawable/gradient_box"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
यह ऐप्लिकेशन कोड आकार बनाने लायक बन जाता है और उसे किसी व्यू पर लागू करता है:
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);
- यह भी देखें:
-