2013-05-28 6 views
6

मैं एक बहुत ही सरल सवाल है? यदि हां, तो कैसे ?किसी दिए गए संसाधन के लिए क्वालीफायर कैसे प्राप्त करें (इसका उपयोग करते समय)?</p> <p>R.java फ़ाइल से किसी विशिष्ट संसाधन (आईडी, स्ट्रिंग, drawable, ...) को देखते हुए यह पता करने के लिए जो क्वालिफायर यह है कि यह मेल नहीं खाते अपने फ़ोल्डर पर था संभव है:

उदाहरण के लिए, यदि मेरे डिवाइस में एचडीपीआई घनत्व वाली स्क्रीन है, और मेरे पास "res/drawable-hdpi" और "res/drawable-mdpi" पर एक ही फ़ाइल नाम "x.png" है, और मैं इसके बारे में हूं इस फ़ाइल को डीकोड करने के लिए, मैं क्या प्राप्त करना चाहता हूं कि यह फ़ाइल को res/drawable-hdpi से मिली है, और यह करकर यह पता है कि इसमें HDpi घनत्व है।

बेशक, इस उदाहरण में, यदि फ़ाइल अन्य फ़ोल्डर पर मौजूद है, लेकिन नहीं hdpi फ़ोल्डर पर, मैं यह मुझे बताने की जब मैं फ़ाइल को डिकोड जो एक का उपयोग किया जाएगा चाहते हैं।

शेष क्वालीफायरों के लिए जाता है (लोकेल, स्क्रीनसाइज, ...)।

+0

मुझे लगता है कि प्रश्न में दिलचस्पी रखता हूँ। मैं एक ही समस्या में हूँ। क्या आपने इसे हल किया? क्या आपको किसी भी स्थिति में डिवाइस द्वारा उपयोग की जाने वाली क्वालिफ़र का अनुमान लगाने के लिए एक फ़ंक्शन मिला? – GmloMalo

+0

@GmloMalo सं। मुझे यह भी याद नहीं है कि मैं यह क्यों चाहता था ... –

+0

ठीक है। धन्यवाद वैसे भी – GmloMalo

उत्तर

0

यह समस्या बहुत अधिक होती है यदि आपके डिवाइस की बड़ी संख्या के लिए लक्ष्यीकरण इसलिए मैंने यह पता लगाने के लिए अपना स्वयं का सरल एप्लिकेशन बनाने का निर्णय लिया कि कौन सा ड्रॉइंग योग्य है। Here लिंक है।

आशा है कि इससे मदद मिलेगी।

+0

नमूना कोड में कोई कोड नहीं है और कोई फ़ंक्शन नहीं है जो मैंने लिखा है ... –

+0

बस नमूना कोड चलाएं और आप समझेंगे। – bladeX

0

मुझे नहीं लगता कि एंड्रॉइड फ्रेमवर्क आपके आवेदन के लिए एक तंत्र प्रदान करता है यह पता लगाने के लिए कि किस संसाधन का उपयोग किया गया था।

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

हालांकि मुझे स्पष्ट नहीं है कि आपकी आवश्यकता वास्तव में क्या है? क्या आप चाहते हैं कि आपका एप्लिकेशन यह पहचानने में सक्षम हो कि किस संसाधन का उपयोग किया जाता है? या आप केवल डिजाइन/निर्माण के दौरान यह चाहते हैं।

यह पता लगाने के लिए कि किस संसाधन का उपयोग किया जा रहा है, आप आसानी से स्क्रीन घनत्व, स्क्रीन आकार, वर्तमान फोन लोकेल और वर्तमान अभिविन्यास के आधार पर एक तर्क तैयार कर सकते हैं, जिनमें से सभी एंड्रॉइड में मौजूद विभिन्न एपिस के माध्यम से उपलब्ध हैं।

+0

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

+0

कि मेरी राय में संभव नहीं है ... आप जो कर सकते हैं सबसे अच्छी बात यह है कि आप जानते हैं कि आपके द्वारा प्रदान किए गए क्वालीफायर के साथ प्रत्येक फ़ोल्डर में आपने कौन से संसाधन डाले हैं। मैंने उल्लेख किए गए डिवाइस मीट्रिक के आधार पर, आप अनुमान लगा सकते हैं कि आपके ऐप द्वारा कौन सा संसाधन उठाया जा रहा है। मुझे नहीं लगता कि आप यह पता लगा सकते हैं कि किसी विशेष संसाधन के लिए कौन से क्वालीफायर मौजूद हैं, जो एंड्रॉइड सिस्टम द्वारा किया जाएगा, न कि आपके आवेदन। –

0

उपयोग डीपीआई के लिए http://developer.android.com/reference/android/content/res/Configuration.html

उदाहरण:

Configuration config = getResources().getConfiguration(); 
    Log.d("DPI ", Integer.toString(config.densityDpi)); 
+0

वह हिस्सा कहां है जहां मैं आपको संसाधन आईडी देता हूं? वर्तमान में, मैं देखता हूं कि आपने डिवाइस की घनत्व की पहचान की है।किसी दिए गए संसाधन से इसका कोई लेना-देना नहीं है। –

+0

यह, आप संख्याओं में डीपीआई देख सकते हैं। http://stackoverflow.com/questions/2025282/difference-between-px-dp-dip-and-sp-in-android जांच डीपीआई कॉन्फ़िगरेशन और आपके फोन के लिए ज्ञात घनत्व बाल्टी के साथ। – Novikov

+0

आप सवाल को समझ नहीं सकते हैं। मैं घनत्व के लिए नहीं पूछता हूँ। मैं पूछता हूं कि संसाधन का मूल फ़ोल्डर कैसे प्राप्त करें I उदाहरण के लिए, यदि मेरे पास एकाधिक फ़ोल्डर्स ("ड्रॉएबल-एलडीपीआई", "ड्रॉरेबल-पोर्ट", "ड्रॉएबल-आईडब्ल्यू", ...) के अंदर एक ड्रॉ करने योग्य है, तो मैं यह जानना चाहता हूं कि जब मैं प्राप्त करने का प्रयास करता हूं तो कौन सी फाइलें चुनी जाती हैं यह। –

संबंधित मुद्दे

 संबंधित मुद्दे