2011-06-16 16 views
16

प्रदर्शन मेट्रिक्स प्राप्त करने का सही तरीका क्या है, यानी स्क्रीन/डिस्प्ले जानकारी जैसे density या xdpi प्राप्त करें?प्रदर्शन मेट्रिक्स प्राप्त करने का उचित तरीका: getResources() या getWindowManager()

मैं पूछता हूँ क्योंकि मैं इस बारे में जाने के दो तरीके देखा है:

सबसे पहले:

DisplayMetrics metrics = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(metrics); 

तो metrics.density या metrics.xdpi द्वारा जानकारी प्राप्त करने, आदि

दूसरा:

इस विधि में
getResources().getDisplayMetrics().density 

मुझे विश्वास है कि आप als कर सकते हैं ओ सिर्फ एक चर इनिशिएलाइज़ DisplayMetric रखें और फिर पहली विधि में की तरह की जानकारी हड़पने के लिए:

DisplayMetrics metricsMethodTwo = getResources().getDisplayMetrics() 

और फिर आप सामान्य तरह की जानकारी प्राप्त कर सकते हैं: metricsMethodTwo.density या metricsMethodTwo.xdpi

मैं दोनों विभिन्न स्थानों में देखा है डॉक्स में तो यदि कोई हो तो मतभेद क्या हैं, और दूसरी विधि पर एक विधि (या अधिक उपयुक्त) कब और क्यों है? धन्यवाद

उत्तर

16
public DisplayMetrics getDisplayMetrics() 

वापसी वर्तमान प्रदर्शन मेट्रिक्स कि यह संसाधन वस्तु के लिए प्रभाव में हैं। लौटाई गई वस्तु को केवल पढ़ने के लिए माना जाना चाहिए।

public void getMetrics (DisplayMetrics outMetrics) 

प्रारंभ एक DisplayMetrics आपत्ति इस प्रदर्शन के डेटा से

अंतर यह है कि मैट्रिक्स Resources विधि द्वारा दिया कि विशेष रूप से Resources वस्तु के लिए मैट्रिक्स है। तुम हमेशा निर्माता

Resources(AssetManager assets, DisplayMetrics metrics, Configuration config) 

जिसमें आप जरूरी नहीं कि मीट्रिक Display उदाहरण विधि getDefaultDisplay() द्वारा लौटाए से प्राप्त कर सकते हैं किसी भी मैट्रिक्स आप चाहते हैं, सेट कर सकते हैं के साथ एक नया Resources उदाहरण बना सकते हैं।

यह अंतर है। यदि आप केवल डिफ़ॉल्ट संसाधनों और डिफ़ॉल्ट डिस्प्ले का उपयोग कर रहे हैं तो मानों में हालांकि यह कोई फर्क नहीं पड़ता है।

+3

धन्यवाद! मैं अभी भी कल्पना करने की कोशिश कर रहा हूं कि जब आप अपना खुद का 'संसाधन' बनायेंगे। क्या ऐसा कोई उदाहरण है जब आप ऐसा करेंगे या क्यों? (यानी मूल्य दो तरीकों के लिए वास्तव में अलग कब होगा?) –

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