दिलचस्प पोस्ट
अंतिम 8 (8) में जावा 8 में जोरदार पहुंचने योग्य वस्तु Std :: स्ट्रिंग के लिए एक इंट संलग्न करें उपसर्ग / पोस्टफिक्स वृद्धि वेतन ऑपरेटरों वेबसाकेट प्रोटोकॉल बनाम HTTP मैं कैसे उपाय करूँगा "ब्रेकपॉइंट वर्तमान में हिट नहीं होगा इस दस्तावेज के लिए कोई प्रतीकों को लोड नहीं किया गया है। "चेतावनी? पोस्टग्रेएसक्यूएल: एक प्रश्न के लिए पंक्तियों की गणना 'मिनट से' क्रोम के कंसोल लॉग प्राप्त करें PHP में एक ऑब्जेक्ट रिक्त कैसे है यह कैसे जांचें? जावा – एक ArrayList में डुप्लिकेट निकाल रहा है संसाधन अधिग्रहण से क्या मतलब है आरंभिकरण (आरएआईआई) है? IE 8 के साथ जावास्क्रिप्ट डिबग कैसे करें IOS 5 पर document.ontouchmove और स्क्रॉलिंग एक सरणी के लिए एक wav फ़ाइल में डेटा कैसे पढ़ा जाए "पार्सर त्रुटि संदेश: प्रकार लोड नहीं किया जा सका" Global.asax में कैच प्रदर्शन की कोशिश करो

क्या एंड्रॉइड ड्रॉएबल डायरेक्टरी में उपनिर्देशिकाएं हो सकती हैं?

एंड्रॉइड एसडीके दस्तावेज़ीकरण में, @ ड्रॉएबल / माय_इमेज xml सिंटेक्स के साथ इस्तेमाल किए जाने वाले सभी उदाहरणों को प्रत्यक्ष रूप से पता चित्र जो मेरे प्रोजेक्ट में res / drawable निर्देशिका में संग्रहीत हैं।

मैं सोच रहा हूं कि क्या यह स्पष्ट रूप से ड्रॉएबल डायरेक्टरी में उप निर्देशिका बनाने के लिए ठीक नहीं है

उदाहरण के लिए, अगर मेरे पास निम्न निर्देशिका लेआउट था:

res/drawable -- sandwiches -- tunaOnRye.png -- hamAndSwiss.png -- drinks -- coldOne.png -- hotTea.png 

क्या मैं ट्यूना सलाद सैंडविच की छवि को @ ड्रॉएबल / सैंडविच / ट्यूना ओनरेय के रूप में संदर्भित कर सकता हूं?

या क्या मुझे पदानुक्रम को पठनीय निर्देशिका में सपाट रखना है

वेब के समाधान से एकत्रित समाधान "क्या एंड्रॉइड ड्रॉएबल डायरेक्टरी में उपनिर्देशिकाएं हो सकती हैं?"

नहीं, संसाधन तंत्र ड्रॉएबल डायरेक्टरी में सबफ़ोल्डर का समर्थन नहीं करता है, इसलिए हां – आपको यह पदानुक्रम सपाट रखने की आवश्यकता है।

आपके द्वारा प्रदर्शित की गई निर्देशिका लेआउट में छवियों में से कोई भी उपलब्ध नहीं होगा।

अपने स्वयं के प्रयोगों से ऐसा लगता है कि इसमें किसी भी आइटम के साथ एक सबफ़ोल्डर होने पर, res/drawable फ़ोल्डर के भीतर, संसाधन संकलक को विफल करने के लिए कारण होगा – R.java फ़ाइल को सही ढंग से उत्पन्न होने से रोकना

मैं जो कामकाज का उपयोग कर रहा हूं (और एक एंड्रॉइड अपने पक्ष में है) अनिवार्य रूप से एक अग्रेषित स्लैश के लिए अंडरस्कोर का स्थान लेना है, इसलिए आपका संरचना कुछ ऐसा दिखाई देगा:

 sandwich_tunaOnRye.png sandwich_hamAndSwiss.png drink_coldOne.png drink_hotTea.png 

इस दृष्टिकोण के लिए आपको अपने नामकरण में सावधानी बरतने की ज़रूरत होती है और फाइलों को खुद से परेशान करना बहुत आसान नहीं होता है (अगर आपने तय किया है कि पेय और सैंडविच वास्तव में सभी " food " हैं, तो आपको इसके बजाय जन नाम बदलना होगा बस उन्हें निर्देशिका में स्थानांतरित करने के लिए); लेकिन आपके प्रोग्रामिंग तर्क की जटिलता फ़ोल्डर संरचना समकक्ष की तुलना में बहुत बुरी तरह से पीड़ित नहीं होती है

यह स्थिति वास्तव में बेकार है एंड्रॉइड अद्भुत और भयानक डिजाइन फैसले का मिश्रित बैग है हम केवल बाद के भाग के लिए उम्मीद कर सकते हैं कि सभी जल्दबाजी के साथ घास निकालने के लिए 🙂

हाँ – यह चूसना है 🙂 लेकिन आप संपत्ति फ़ोल्डर का उपयोग कर सकते हैं और उसमें उप निर्देशिकाएं हैं और इस तरह छवियों को लोड कर सकते हैं

वास्तव में, एंड्रॉइड स्टूडियो पर यह संभव है आप नेस्टेड संसाधन यहां दिखाए अनुसार कर सकते हैं:

यहां छवि विवरण दर्ज करें

यहाँ समूह संसाधनों के लिए एक प्लगइन भी है

संपत्ति फ़ोल्डर का उपयोग करें

नमूना कोड:

 InputStream is = null; try { is = this.getResources().getAssets().open("test/sample.png"); } catch (IOException e) { ; } image = BitmapFactory.decodeStream(is); 

मैंने एक ग्रहण प्लगइन लिखा है जो कि फ़ाइल नाम को दो अंडरस्कोर __ से अलग करके आभासी सबफ़ोल्डर बनाने की अनुमति देता है। यह परियोजना शुरुआती दौर में है, लेकिन चिंता न करें कि यह आपके आईडीई को क्रैश नहीं करेगा

अधिक जानकारी यहाँ पाई जा सकती है, कांटा करने के लिए स्वतंत्र महसूस करें और पुल अनुरोध भेजें:

https://github.com/kirill578/Android-Sorted-Res-Folder

यहां छवि विवरण दर्ज करें

मैं डिजाइनरों द्वारा प्रदान की गई एक संगठित निर्देशिका संरचना को समतल करने के लिए एक साधारण स्क्रिप्ट का उपयोग करना चाहता हूं जो किसी आर फ़ाइल को उत्पन्न करने के लिए उपयोग किया जा सकता है।

ड्रॉएबल -एचडीपीआई में वर्तमान पथ के साथ चलाएं:

 #! /bin/bash DIRS=`find * -type d` for dir in ${DIRS} ; do for file in `ls ${dir}` ; do mv ${dir}/${file} ${dir}_${file}; done rmdir ${dir}; done 

एंड्रॉइड स्टूडियो में ग्रेडल के साथ आप कई स्रोत निदेशकों का हो सकते हैं जो आपको संसाधनों को अलग करने की अनुमति देगा। उदाहरण के लिए:

 android { .... android.sourceSets { main.res.srcDirs = ['src/main/extraresdirnamed_sandwiches', 'src/main/res'] } .... } 

हालांकि, नामों को टकराकर नहीं होना चाहिए जिसका अर्थ है कि आपको सैंडविच_टाउन ओनरेय जैसे नामों की आवश्यकता होगी, लेकिन आप अपने सभी सैंडविच के लिए एक अलग सेक्शन कर पाएंगे।

इससे आप अपने संसाधनों को विभिन्न संरचनाओं में संग्रहीत करने की सुविधा प्रदान कर सकते हैं (ऑटो जेनरेट की गई सामग्री जैसे एक्शनबगरनरेटर के लिए उपयोगी)

आंशिक रूप से इस समस्या को हल करने का एक तरीका एपीआई स्तर प्रत्यय का उपयोग करना है। मैं एक ही एपीके में कई उप परियोजनाओं को रखने के लिए रेस / लेआउट-वी 1, रेस / लेआउट-वी 2 आदि का उपयोग करता हूं। यह तंत्र सभी संसाधन प्रकारों के लिए उपयोग किया जा सकता है

जाहिर है, इसका उपयोग केवल तब किया जा सकता है जब आप Res / layout-v के ऊपर एपीआई स्तर को लक्षित कर रहे हैं? आप उपयोग कर रहे हैं।

इसके अलावा, एंड्रॉइड 1.5 और 1.6 में बग के लिए देखें। एपीआई स्तर प्रत्यय के बारे में Andoroid प्रलेख देखें ।

पुस्तकालय प्रणाली के आगमन के साथ, संपत्ति के हर बड़े सेट में एक पुस्तकालय बनाने के लिए एक समाधान हो सकता है।

यह अभी भी समस्याग्रस्त है क्योंकि सभी को सभी संपत्तियों में समान नामों का उपयोग करने से बचने चाहिए, लेकिन प्रत्येक पुस्तकालय के लिए एक उपसर्ग योजना का उपयोग करके उसमें मदद करनी चाहिए।

यह फ़ोल्डर्स बनाने में सक्षम होने के रूप में सरल नहीं है, लेकिन चीजों को समझने में मदद करता है …

यह सही तरीके नहीं है आपको उसी तरह कार्यान्वित करना होगा जो यहां प्रदर्शित होता है ।

आप उस फ़ोल्डर के माध्यम से उस चित्र को नीचे कॉल कर सकते हैं जो आप उपयोग कर सकते हैं

 Resources res = getResources(); Drawable shape = res. getDrawable(R.drawable.gradient_box); TextView tv = (TextView)findViewByID(R.id.textview); tv.setBackground(shape); 

मेरा नहीं, लेकिन इस समस्या की तलाश करते हुए मैंने यह धागा पाया, यदि आपका एंड्रॉइड स्टूडियो और ग्रैडल बिल्ड सिस्टम का उपयोग करना बहुत आसान नहीं है तो कोई प्लगइन्स जरूरी नहीं है, बस थोड़ा सा फ़ाइल संपादन

https://stackoverflow.com/a/22426467/618419

एंड्रॉइड स्टूडियो के साथ ग्रैडल ऐसा कर सकता है ( लिंक )।

यह "संरचना का विन्यास" पैराग्राफ में है

 sourceSets { main { java { srcDir 'src/java' } resources { srcDir 'src/resources' } } } 

इस स्थिति के लिए एक वैकल्पिक हल है: आप एक resVector (उदाहरण के लिए) फ़ोल्डर को एक ही स्तर पर डिफॉल्ट res फ़ोल्डर के रूप में बना सकते हैं। वहां आप वहां कोई भी drawable-xxx संसाधन फ़ोल्डर्स जोड़ सकते हैं:

 resVector -drawable -layout -color 

उसके बाद आपको सभी को जोड़ना है

 sourceSets { main.res.srcDirs += 'src/main/resVector' } 

अपने build.gradle फ़ाइल में ( android { } अंदर)

 #!/usr/bin/env ruby # current dir should be drawable-hdpi/ etc # nuke all symlinks Dir.foreach('.') {|f| File.delete(f) if File.symlink?(f) } # symlink all resources renaming with underscores Dir.glob("**/*.png") {|f| system "ln -s #{f} #{f.gsub('/', '_')}" if f.include?("/") } 

चेक बैश फ़ोल्डर स्क्रिप्ट को फ़्लैट करें, जो फ़ोल्डर पदानुक्रम को एक फ़ोल्डर में कनवर्ट करता है

संपत्ति / आप कच्ची संपत्ति फ़ाइलों को स्टोर करने के लिए इसका उपयोग कर सकते हैं। आपके द्वारा यहां सहेजी गई फ़ाइलों को .apk फ़ाइल में संकलित किया गया है, और मूल फ़ाइल नाम संरक्षित है। आप इस निर्देशिका को उसी तरह से नेविगेट कर सकते हैं जैसे विशिष्ट फाइल सिस्टम के रूप में यूआरआई का इस्तेमाल करते हैं और एसेट मैनेजर का उपयोग करके बाइट्स की धारा के रूप में फाइलें पढ़ते हैं। उदाहरण के लिए, यह बनावट और गेम डेटा के लिए एक अच्छा स्थान है। http://developer.android.com/tools/projects/index.html

उपनिर्देशिका की अनुमति नहीं है, संसाधन में केवल [a-z0- 9_] होना चाहिए।]

आपके पास अपरकेस अक्षर नहीं है, और कोई फ़ॉरवर्ड स्लैश नहीं है।

मुख्य में एक फ़ोल्डर बनाएँ जैसे: 'res_notification_btn'

और पेड़ फ़ोल्डर को अंदर बनाएँ जैसे 'ड्रॉएबल' या 'लेआउट'

तो 'build.gradle' में यह जोड़ें

 sourceSets { main { res { srcDirs = ['src/main/res_notification_btn', 'src/main/res'] or srcDir 'src/main/res_notification_btn' } } }