2012-11-30 17 views
9

एंड्रॉइड में, मैं ऐप विंडो का आकार कैसे प्राप्त कर सकता हूं? मैं भौतिक स्क्रीन आकार की तलाश नहीं कर रहा हूं, लेकिन स्क्रीन पर एप्लिकेशन विंडो का वास्तविक आकार। जैसे आमतौर पर अधिसूचना बार, मुलायम स्पर्श बटन इत्यादि लेने के बाद क्या बचा हैमैं एंड्रॉइड एप्लिकेशन विंडो का आकार कैसे प्राप्त कर सकता हूं, न कि भौतिक स्क्रीन आकार?

उत्तर

10

यदि आप अपने ऐप की विंडो का आकार चाहते हैं तो आप केवल अपनादृश्य कॉल कर सकते हैं .getHeight() और yourview.getWidth(); लेकिन उस काम को देखने के लिए तैयार किया जाना चाहिए।

आप ऊंचाई प्राप्त करना चाहते हैं इससे पहले कि यह तैयार है आप यह कर सकते हैं:

https://stackoverflow.com/a/10134260/1851478

स्क्रीन/दृश्य माप के विभिन्न मामलों का एक बहुत हालांकि, कर रहे हैं, इसलिए यदि आप के बारे में अधिक विशिष्ट हो सकता है "अनुप्रयोग विंडो का वास्तविक आकार", क्या यह आपका ऐप है? या होम स्क्रीन ऐप ?, कुछ अन्य ऐप?

यदि आप उपयोग करने योग्य स्थान माइनस सजावट (स्टेटस बार/सॉफ्ट बटन) चाहते हैं, तो आप इसे विपरीत में भी हमला कर सकते हैं, उदाहरण के लिए वास्तविक स्क्रीन आयामों को मापना (विधियों द्वारा एपीआई में भिन्नताएं), और फिर ऊंचाई की ऊंचाई घटाएं स्टेटस बार।

उदाहरण प्रदर्शन ऊंचाई:

((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getHeight(); 

स्थिति पट्टी ऊंचाई:

Rect rectgle= new Rect(); 
Window window= getWindow(); 
window.getDecorView().getWindowVisibleDisplayFrame(rectgle); 
int StatusBarHeight= rectgle.top; 

या

int statusBarHeight = Math.ceil(25 * context.getResources().getDisplayMetrics().density); 

कई अलग अलग तरीकों से यह करने के लिए।

निश्चित रूप से अधिक सटीक उत्तर देने के लिए आपको अधिक जानकारी चाहिए।

+0

धन्यवाद, इसके अपने ही गतिविधि आयाम मैं के बाद कर रहा हूँ। अभिभावक दृश्य चौड़ाई/ऊंचाई मेरे लिए यह करेगी लेकिन जैसा कि आप कहते हैं कि पहले खींचे गए दृश्य की आवश्यकता है। –

+0

कूल, अच्छी तरह से जो लिंक मैंने प्रदान किया है वह आपके लिए करना चाहिए, लेकिन आप माप के बाद छिपाने के बारे में हिस्सा को अनदेखा कर सकते हैं। वैकल्पिक रूप से बस देखने के बाद .getHeight() और .getWidth() को कॉल करें (उदाहरण में एक गतिविधि में जिसे आपने पहले से ही सेटकंटेंट व्यू (आर .layout.yourview) कहा है; – logray

+0

"यदि आप इसे खींचने से पहले ऊंचाई प्राप्त करना चाहते हैं तो आप कर सकते हैं ऐसा करें: "- फिर आप कुछ कोड के लिए एक लिंक प्रदान करते हैं जो दृश्य को बढ़ाए जाने के बाद ही आयाम निर्धारित कर सकता है। – AndroidDev

5

यह भी बहुत आसान है:

Rect windowRect = new Rect(); 

yourView.getWindowVisibleDisplayFrame(windowRect); 

int hWindow = windowRect.bottom - windowRect.top; 
int wWindow = windowRect.right - windowRect.left; 
संबंधित मुद्दे