2013-01-16 42 views
6

इस कोडसे पैकेज (मधुकोश) hidensity drawable

final ApplicationInfo ai = getPackageManager().getApplicationInfo("com.company.hello", 0); 
final Drawable d = getPackageManager().getApplicationIcon(ai); 

भी मेरी hidensity मधुकोश डिवाइस पर एक 48x48 (mdpi) drawable पुनर्प्राप्त प्राप्त करें।

यह देखते हुए कि मैं द्वारा ड्रायबल को बढ़ा सकता हूं Bitmap.createScaledBitmap, मैं पूछ रहा हूं कि पहले से मौजूद हाय घनत्व आइकन कैसे निकालना है। विधि getDrawableForDensity एसडीके < 15 के लिए उपलब्ध नहीं है, लेकिन मुझे पैकेज में उपलब्ध होने पर प्रत्येक आइकन के लिए स्केलिंग फ़ंक्शन का आह्वान करने में खुशी नहीं है।

इनाम

भूल के लिए थोड़ी देर के लिए मेरे उपकरण प्रदर्शन घनत्व सवाल पीछा कर रहा है के लिए संपादित करें: एक स्वयं के पैकेज, जिसके लिए हम जानते हैं कि रिश्तेदार hdpi रेस फ़ोल्डर में एक 72x72 आइकन है करने के लिए सुनिश्चित करने के लिए दिया जाता है, इस आइकन को किसी अन्य पैकेज से कैसे निकालें?

THIS FUNCTION हनीकॉम पर्यावरण पर उपलब्ध नहीं है।

+0

आपके पास एक बार होने के बाद आप क्या ड्रॉइंग का उपयोग कर रहे हैं? ऐसा लगता है कि आप इसे प्राप्त करने के लिए छवि के 'R.drawable.id' का उपयोग कर सकते हैं, जो वर्तमान में आप जो भी आकार स्क्रीन चला रहे हैं, उसके लिए स्वचालित रूप से सही एक को पकड़ लेगा। – FoamyGuy

+0

शायद आप घनत्व वाले आकार को भ्रमित कर रहे हैं (वे अलग हैं)। आपको अपने पीएनजी संसाधनों को स्केल नहीं करना चाहिए (यह विभिन्न संकल्प ड्रॉबल्स का उपयोग करने का पूरा उद्देश्य है)। – Booger

+0

हाय फोमगुई मैंने पहले से ही विशिष्ट आईडी द्वारा आइकन निकालने का प्रयास किया है लेकिन परिणाम वही है: 48x48 आकर्षित करने योग्य। बूगर: मैं कुछ भी भ्रमित नहीं कर रहा हूं: एक पैकेज दिया गया है, मुझे 72x72 आकर्षित करने की इच्छा है जो मुझे पता था। मेरी स्क्रीन घनत्व HI_DENSITY है और समाधान प्राप्त हो सकता है DrawableForDensity लेकिन यह उपलब्ध नहीं है। – lorenzoff

उत्तर

1

अच्छा घनत्व के साथ अपने drawable directlyy लगता है, तो आप सिर्फ यह कोशिश करने के लिए है:

mContext.getResources().getDrawable(R.drawable.mydrawable); 

समस्या क्या है? यदि एंड्रॉइड आपको 48x48 आइकन प्राप्त करता है, तो यह अच्छा आइकन है या आपने अच्छे res/drawable- फ़ोल्डर में आइकन सेट नहीं किया है।

+0

हां, आपके उत्तर के लिए धन्यवाद लेकिन सवाल यह नहीं है कि 48x48 आइकन अच्छा है या नहीं, बल्कि डिवाइस घनत्व के बावजूद पैकेज से सभी रिज़ॉल्यूशन आइकनों को निकालने का तरीका नहीं है। जैसा कि मैंने एपीआई का उपयोग कर पहले से ही लिखा है> 15 एक ऐसा फ़ंक्शन जो मुझे वही करता है जो मुझे चाहिए (getDrawableForDensity) उपलब्ध है और सवाल यह है कि इस funcion का उपयोग किए बिना एक ही परिणाम कैसे प्राप्त करें। – lorenzoff