ऐप्लिकेशन के संसाधन जोड़ें

बिटमैप और लेआउट जैसे ऐप्लिकेशन के संसाधन अलग-अलग टाइप के हिसाब से व्यवस्थित किए जाते हैं हर मॉड्यूल की res/ डायरेक्ट्री में मौजूद डायरेक्ट्री. आप चाहें, तो अन्य अलग-अलग डिवाइस के लिए ऑप्टिमाइज़ की गई हर फ़ाइल के वर्शन कॉन्फ़िगरेशन, जैसे कि हाई डेंसिटी के लिए बिटमैप का हाई रिज़ॉल्यूशन वर्शन स्क्रीन.

Android Studio कई ऐप्लिकेशन में नए संसाधन और वैकल्पिक संसाधन जोड़ने में आपकी मदद करता है अलग-अलग तरीकों से दिखाया जा सकता है. इस पेज में बताया गया है कि बुनियादी रिसॉर्स फ़ाइलें जोड़ने के लिए, संसाधनों की जगह बदलने का तरीका, और और रिसॉर्स मर्ज करने की प्रोसेस कैसे काम करती है.

इमेज बनाने का तरीका जानने के लिए, नीचे दिए गए पेजों पर जाएं खास तरह के संसाधन:

अपने ऐप्लिकेशन में मौजूद संसाधनों का रेफ़रंस देने का तरीका जानें कोड, देखें ऐप्लिकेशन के संसाधनों की खास जानकारी.

कोई एक्सएमएल रिसॉर्स फ़ाइल जोड़ें

हालांकि, पिछले पेज के लिंक ऐसे वर्कफ़्लो के बारे में बताते हैं जो हर एक के हिसाब से बनाए गए हैं है, तो आप इनका पालन करके किसी भी एक्सएमएल संसाधन फ़ाइल को जोड़ सकते हैं चरण:

  1. इनमें से किसी एक प्रोजेक्ट की प्रोजेक्ट विंडो में, टारगेट ऐप्लिकेशन मॉड्यूल पर क्लिक करें Android या प्रोजेक्ट व्यू.

  2. फ़ाइल > चुनें नया > Android संसाधन फ़ाइल.

    पहला डायग्राम. नई संसाधन फ़ाइल डायलॉग.

  3. डायलॉग बॉक्स में जानकारी भरें:
    • फ़ाइल का नाम: एक्सएमएल फ़ाइल के लिए नाम डालें (इसके लिए, .xml सफ़िक्स).
    • संसाधन का टाइप: आपको जिस तरह का संसाधन बनाना है उसे चुनें.
    • रूट एलिमेंट: अगर लागू हो, तो फ़ाइल से लिए जाते हैं. कुछ संसाधन टाइप सिर्फ़ एक तरह के रूट एलिमेंट के साथ काम करते हैं. निर्भर करता है चुना गया है, तो हो सकता है कि इसमें बदलाव न किया जा सके.
    • सोर्स सेट: वह सोर्स सेट चुनें जहां आपको फ़ाइल सेव करनी है.
    • डायरेक्ट्री का नाम: डायरेक्ट्री का नाम, खास तरीके से दिया जाना चाहिए संसाधन टाइप और कॉन्फ़िगरेशन क्वालीफ़ायर के तौर पर अपडेट किया जाएगा. इसे तब तक संपादित न करें, जब तक आपको कॉन्फ़िगरेशन क्वालीफ़ायर जोड़ना है, डायरेक्ट्री का नाम मैन्युअल तरीके से सेट करें (इसके बजाय, उपलब्ध क्वालीफ़ायर का इस्तेमाल करें).
    • उपलब्ध क्वालीफ़ायर: मैन्युअल रूप से कॉन्फ़िगरेशन क्वालीफ़ायर शामिल करने के बजाय तो आप सूची खोलें और जोड़ें पर क्लिक करें.
  4. अपने हिसाब से सभी क्वालिफ़ायर जोड़ने के बाद, ठीक है पर क्लिक करें.

सलाह: नई संसाधन फ़ाइल डायलॉग का आसान वर्शन खोलने के लिए उस संसाधन प्रकार के लिए विशिष्ट हो जिसे आप जोड़ना चाहते हैं, तो किसी मौजूदा संसाधन पर राइट-क्लिक करें res फ़ोल्डर में संसाधन डायरेक्ट्री होनी चाहिए और नया > type-name संसाधन फ़ाइल.

इनलाइन जटिल एक्सएमएल रिसॉर्स

कुछ जटिल संसाधनों के लिए, एक से ज़्यादा एक्सएमएल रिसॉर्स फ़ाइलों की ज़रूरत होती है. उदाहरण के लिए, ड्रॉ करने लायक ऐनिमेटेड वेक्टर में वेक्टर ड्रॉ करने लायक ऑब्जेक्ट और एक ऐनिमेशन ऑब्जेक्ट है और कम से कम तीन एक्सएमएल फ़ाइलों की ज़रूरत होती है.

इस उदाहरण में, अगर आपको एक या एक से ज़्यादा फ़ाइलों का फिर से इस्तेमाल करने की ज़रूरत हो, तो तीन अलग-अलग एक्सएमएल फ़ाइलें बनाएं और उन्हें बनाए रखें उन्हें. लेकिन अगर एक्सएमएल फ़ाइलों का इस्तेमाल सिर्फ़ ड्रॉ किए जा सकने वाले ऐनिमेटेड वेक्टर के लिए किया जाता है, इसके बजाय, Android ऐसेट में दिए गए इनलाइन रिसॉर्स फ़ॉर्मैट का इस्तेमाल किया जा सकता है पैकेजिंग टूल (AAPT). एएपीटी का इस्तेमाल करके, तीनों संसाधनों को एक एक्सएमएल में तय किया जा सकता है फ़ाइल से लिए जाते हैं. ज़्यादा जानकारी के लिए, इनलाइन कॉम्प्लेक्स एक्सएमएल संसाधन शामिल हैं.

कोई रिसॉर्स डायरेक्ट्री जोड़ना

नई रिसॉर्स डायरेक्ट्री जोड़ने के लिए, यह तरीका अपनाएं:

  1. प्रोजेक्ट विंडो में, टारगेट ऐप्लिकेशन मॉड्यूल पर क्लिक करें.

  2. फ़ाइल > चुनें नया > Android की रिसॉर्स डायरेक्ट्री.

    दूसरा डायग्राम. नई संसाधन डायरेक्ट्री डायलॉग.

  3. डायलॉग बॉक्स में जानकारी भरें:
    • डायरेक्ट्री का नाम: डायरेक्ट्री का नाम, खास तरीके से दिया जाना चाहिए संसाधन टाइप और कॉन्फ़िगरेशन क्वालिफ़ायर के कॉम्बिनेशन तक सीमित नहीं है. ये काम न करें इसे तब तक संपादित करें, जब तक कि आप कॉन्फ़िगरेशन क्वालिफ़ायर नहीं जोड़ना चाहते डायरेक्ट्री का नाम मैन्युअल तरीके से सेट करें (इसके बजाय, उपलब्ध क्वालीफ़ायर का इस्तेमाल करें).
    • संसाधन का टाइप: उस संसाधन को चुनें जिसे आपको डायरेक्ट्री में शामिल करना है.
    • सोर्स सेट: वह सोर्स सेट चुनें जिसमें आपको डायरेक्ट्री बनानी है.
    • उपलब्ध क्वालीफ़ायर: मैन्युअल रूप से कॉन्फ़िगरेशन क्वालीफ़ायर शामिल करने के बजाय तो आप सूची खोलें और जोड़ें पर क्लिक करें.
  4. अपने हिसाब से सभी क्वालिफ़ायर जोड़ने के बाद, ठीक है पर क्लिक करें.

अपनी संसाधन डायरेक्ट्री बदलना

डिफ़ॉल्ट रूप से, आपके संसाधन module-name/src/source-set-name/res/. उदाहरण के लिए, आपके मॉड्यूल के मुख्य सोर्स सेट के संसाधन src/main/res/ में हैं, और डीबग सोर्स सेट के संसाधन src/debug/res/ में दिए गए हैं.

हालांकि, आपके पास इन पाथ को किसी दूसरे पाथ में बदलने का विकल्प है res.srcDirs प्रॉपर्टी के साथ जगह की जानकारी (build.gradle फ़ाइल के हिसाब से) sourceSets ब्लॉक में. उदाहरण के लिए:

ग्रूवी

android {
    sourceSets {
        main {
            res.srcDirs = ['resources/main']
        }
        debug {
            res.srcDirs = ['resources/debug']
        }
    }
}

Kotlin

android {
    sourceSets {
        getByName("main") {
            res.srcDirs("resources/main")
        }
        getByName("debug") {
            res.srcDirs("resources/debug")
        }
    }
}

किसी एक सोर्स सेट के लिए, एक से ज़्यादा रिसॉर्स डायरेक्ट्री भी तय की जा सकती हैं. इसके बाद बनाने के टूल उन्हें एक साथ मर्ज कर सकते हैं. उदाहरण के लिए:

ग्रूवी

android {
    sourceSets {
        main {
            res.srcDirs = ['res1', 'res2']
        }
    }
}

Kotlin

android {
    sourceSets {
        main {
            res.srcDirs("res1", "res2")
        }
    }
}

ज़्यादा जानकारी के लिए, सोर्स सेट.

संसाधन मर्ज करना

आपकी ऐप्लिकेशन की फ़ाइनल फ़ाइल में मौजूद संसाधन तीन सोर्स से आ सकते हैं:

  • मुख्य सोर्स सेट (आम तौर पर, यह src/main/res/ में मौजूद होता है)
  • वैरिएंट बनाना सोर्स सेट
  • Android लाइब्रेरी (एएआर)

जब हर सोर्स सेट या लाइब्रेरी के सभी संसाधन अलग-अलग होते हैं, तो वे सभी फ़ाइनल ऐप्लिकेशन में जोड़ा गया. किसी संसाधन को तब यूनीक माना जाता है, जब उसका फ़ाइल नाम अपने-आप में एक संसाधन टाइप डायरेक्ट्री और रिसॉर्स क्वालीफ़ायर (अगर परिभाषित किया गया हो).

अगर एक ही संसाधन के दो या उससे ज़्यादा मिलते-जुलते वर्शन हैं, तो फ़ाइनल ऐप्लिकेशन में सिर्फ़ एक वर्शन शामिल किया जाता है. बिल्ड टूल चुनें किस वर्शन को निम्न प्राथमिकता क्रम (सबसे ज़्यादा प्राथमिकता) के आधार पर रखना है क्लिक करें:

बिल्ड का वैरिएंट > बिल्ड टाइप > प्रॉडक्ट फ़्लेवर > मुख्य सोर्स सेट > लाइब्रेरी डिपेंडेंसी

उदाहरण के लिए, अगर मुख्य सोर्स सेट में ये शामिल हैं:

  • res/layout/example.xml
  • res/layout-land/example.xml

और डीबग बिल्ड टाइप में यह शामिल है:

  • res/layout/example.xml

इसके बाद, फ़ाइनल ऐप्लिकेशन में डीबग बिल्ड टाइप से res/layout/example.xml शामिल किया जाता है और मुख्य सोर्स सेट से res/layout-land/example.xml.

हालांकि, अगर आपका बिल्ड कॉन्फ़िगरेशन तय करता है एक से ज़्यादा रिसॉर्स फ़ोल्डर जब किसी सोर्स को सेट किया गया हो और उन सोर्स के बीच टकराव हो, तो गड़बड़ी होता है और मर्ज नहीं होता, क्योंकि हर रिसॉर्स डायरेक्ट्री एक जैसी होती है प्राथमिकता तय करें.