2017-08-22 6 views
5

एक एंड्रॉयड स्टूडियो परियोजना के लिए, मैं "मूल्यों" फ़ोल्डर"मूल्य" निर्देशिका के तहत फ़ाइल "drawables.xml" का उद्देश्य क्या है?

<resources xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item name="ic_menu_camera" type="drawable">@android:drawable/ic_menu_camera</item> 
    <item name="ic_menu_gallery" type="drawable">@android:drawable/ic_menu_gallery</item> 
    <item name="ic_menu_slideshow" type="drawable">@android:drawable/ic_menu_slideshow</item> 
    <item name="ic_menu_manage" type="drawable">@android:drawable/ic_menu_manage</item> 
    <item name="ic_menu_share" type="drawable">@android:drawable/ic_menu_share</item> 
    <item name="ic_menu_send" type="drawable">@android:drawable/ic_menu_send</item> 
</resources> 

इस फ़ाइल का उद्देश्य क्या है में एक फ़ाइल नाम "drawables.xml" पाया? यह मौजूदा ड्रॉइंग के लिए एक और संदर्भ क्यों बनाता है और क्यों न केवल "@android: drawable/ic_menu_camera" का उपयोग करें?

उत्तर

9

ऐसा हो सकता है कि डेवलपर के पास भविष्य में कुछ भविष्य-सबूत हो।

डेवलपर जावा कोड संदर्भ android.R.drawable.ic_menu_camera हो सकता था और इसमें लेआउट या अन्य चीजें संदर्भ @android:drawable/ic_menu_camera हो सकती हैं। हालांकि, अगर किसी बाद के बिंदु पर, डेवलपर को एक कस्टम प्लेटफॉर्म पर उपयोग करने योग्य प्लेटफॉर्म का उपयोग करने से स्विच करने की आवश्यकता होती है, तो उन सभी संदर्भों को बदलने की आवश्यकता होगी।

इस फ़ाइल में स्थापित किए गए ड्रायबल उपनाम जावा कोड को R.drawable.ic_menu_camera और लेआउट और अन्य चीजों के संदर्भ @drawable/ic_menu_camera संदर्भित करने की अनुमति देते हैं। अभी, उपनाम इंगित करते हैं कि उन drawables प्लेटफार्म drawables के लिए "पुनर्निर्देशित"। हालांकि, भविष्य में कुछ समय में, डेवलपर एक कस्टम ic_menu_camera खींचने योग्य जोड़ सकता है, उपनाम हटा सकता है ... और जावा कोड, लेआउट इत्यादि में कुछ और बदलने की जरूरत नहीं है

कुछ ऐप्स प्लेटफ़ॉर्म ड्रायबल का संदर्भ देते हैं, और इसलिए आप इस तरह की चाल का अधिकतर समय उपयोग नहीं करेंगे। लेकिन, उन मामलों के लिए जहां ऐप्स प्लेटफॉर्म संसाधनों का संदर्भ लेते हैं, यह एलियासिंग दृष्टिकोण दीर्घकालिक रखरखाव को कम कर सकता है।

एफडब्ल्यूआईडब्ल्यू, मैं this blog post में इसे और अधिक कवर करता हूं।

1

अच्छी तरह से मेरी राय में यह फ़ाइल बेकार है क्योंकि आपके पास पहले से ही ड्रायबल फ़ाइल नाम हैं।

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