2011-12-19 38 views
11

आइस क्रीम सैंडविच के साथ डिवाइस ऑन-स्क्रीन सॉफ्ट कुंजी का उपयोग कर सकते हैं, और इसका मतलब है कि कुछ स्क्रीन एस्टेट इन चाबियों द्वारा ली जाती है। मुझे असली स्क्रीन रिज़ॉल्यूशन प्राप्त करने की आवश्यकता है, न कि संकल्प को नरम कुंजी द्वारा उठाए गए स्थान को घटाएं।आइस क्रीम सैंडविच पर वास्तविक स्क्रीन रिज़ॉल्यूशन प्राप्त करें

मैं निम्नलिखित की कोशिश की है, लेकिन न तो काम करता है:

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth(); 
int height = display.getHeight(); 
Log.d("SCREEN RES", "Width: " + width + ". Height: " + height); 

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 
height = metrics.heightPixels; 
width = metrics.widthPixels; 
Log.d("SCREEN RES", "Width: " + width + ". Height: " + height); 

यहाँ उत्पादन है:

12-19 20:18:42.012: D/SCREEN RES(20752): Width: 1196. Height: 720 
12-19 20:18:42.012: D/SCREEN RES(20752): Width: 1196. Height: 720 

वास्तविक स्क्रीन संकल्प 1280 x 720 पिक्सल, नहीं 1196 x 720 पिक्सल है।

कोई भी विचार?

संपादित

मैं एप्लिकेशन पूर्ण स्क्रीन बनाने के लिए निम्नलिखित कोड का उपयोग कर रहा:

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); 
+0

कैसे वास्तविक संकल्प प्राप्त करने के बारे निष्कर्ष: http://stackoverflow.com/questions/11824193/htc-sensation-real-resolution – thecr0w

उत्तर

9

एपीआई पिक्सल ऐसे डिवाइस का उपयोग कर सकते हैं की संख्या देता है, तो यह सही परिणाम है ।

+0

क्या होगा यदि मैं डाल इस तरह पूर्ण स्क्रीन मोड में ऐप? ।। 'GetWindow() getDecorView() setSystemUiVisibility (2);'। यह मुलायम कुंजी को हटा देता है और मुझे पूरी स्क्रीन और चौड़ाई के सभी 1280 पिक्सेल का उपयोग करने की अनुमति देता है। –

+0

मेरी पिछली टिप्पणी संपादित नहीं कर सकता, लेकिन 2 == 'देखें। SSTEM_UI_FLAG_HIDE_NAVIGATION'। –

+9

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

1

एपीआई स्तर 17 (Android 4.2 Jelly Bean) से, आप प्रदर्शन के वास्तविक आकार इस प्रकार प्राप्त कर सकते हैं:

Point size = new Point(); 
Display display = getWindowManager().getDefaultDisplay(); 
display.getRealSize(size); 

size अब रुचि के आधार पर प्रदर्शन आकार में शामिल होंगे (यानी एक्स होगा। नहीं छोड़ा जा सकता उपयोगकर्ता के लिए/सही रिश्तेदार, नहीं डिवाइस)