एंड्रॉइड स्क्रीन निर्देशांक कैसे काम करते हैं?


154

मैं एंड्रॉइड के साथ काम कर Animationरहा हूं और मैंने एंड्रॉइड कोऑर्डिनेट सिस्टम को काफी भ्रमित करने वाला पाया है इसलिए मैं यहां यह सवाल पूछ रहा हूं कि एंड्रॉइड में काम कैसे निर्देशांक करता है। मैं एक दृश्य को दूसरे पर ले जाने के लिए इस छवि का अनुसरण कर रहा हूं, लेकिन ऐसा लगता है कि यह काम नहीं कर रहा है:

छवि

जवाबों:


294

यहां छवि विवरण दर्ज करें

यह छवि दोनों अभिविन्यास (लैंडस्केप / पोर्ट्रेट) प्रस्तुत करती है

मैक्सएक्स और मैक्सवाई प्राप्त करने के लिए, पर पढ़ें।

एंड्रॉइड डिवाइस स्क्रीन निर्देशांक के लिए, नीचे अवधारणा काम करेगी।

Display mdisp = getWindowManager().getDefaultDisplay();
Point mdispSize = new Point();
mdisp.getSize(mdispSize);
int maxX = mdispSize.x; 
int maxY = mdispSize.y;

EDIT: - ** ** एंड्रॉइड एपीआई स्तर का समर्थन करने वाले उपकरणों के लिए जो 13. से अधिक उम्र का है, नीचे दिए गए कोड का उपयोग कर सकता है।

    Display mdisp = getWindowManager().getDefaultDisplay();
    int maxX= mdisp.getWidth();
    int maxY= mdisp.getHeight();

(x, y): -

1) (0,0) शीर्ष बाएं कोने है।

2) (मैक्सएक्स, 0) शीर्ष दाएं कोने है

3) (0, अधिकतम) नीचे बाएँ कोने है

4) (अधिकतम, अधिकतम) नीचे दायें कोने है

यहाँ अधिकतम और अधिकतम पिक्सेल में स्क्रीन की अधिकतम ऊँचाई और चौड़ाई है, जिसे हमने ऊपर दिए गए कोड में पुनः प्राप्त किया है।


हम मिल गया है, तो Viewसाथ layout_width="1" layout_height="1"इसका मतलब होगा कि ऊपर बाईं ओर है (0,0) और नीचे सही (1, 1) क्या है? इसका मतलब यह नहीं है कि Viewचौड़ाई = 2 और ऊंचाई = 2 होगी? अंतर्विरोध।
rivnodennyk

@Ankit आप कृपया पुष्टि कर सकते हैं, यह स्क्रीन ओरिएंटेशन (पोर्ट्रेट और लैंडस्केप) दोनों के लिए मान्य है, क्या स्क्रीन ओरिएंटेशन परिवर्तन (0,0) -> शीर्ष बाएं कोने को प्रभावित करता है। (मैक्सएक्स, 0) -> टॉप राइट कॉर्नर (0, मैक्सवाई) -> नीचे बाएं कोने (मैक्सएक्स, मैक्सवाई) -> नीचे दाएं कोने
कादिर हुसैन

छवि के लिए बहुत बहुत धन्यवाद। इसने वास्तव में मेरी जान बचाई।
शारल शरीफ

19

Android API स्तर 13 के लिए और आपको इसका उपयोग करने की आवश्यकता है:

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int maxX = size.x; 
int maxY = size.y;

तब (0,0) शीर्ष बाएं कोने और (मैक्स, मैक्स) स्क्रीन के निचले दाएं कोने है।

एपीआई 13 के बाद से स्क्रीन आकार के लिए 'getWidth ()' को हटा दिया गया है

इसके अलावा getwidth () और getHeight () android.view.View क्लास के तरीके हैं android.So में जब आपकी जावा क्लास फैली हुई है तो देखें क्लास में कोई windowManager ओवरहेड्स नहीं है।

          int maxX=getwidht();
          int maxY=getHeight();

इतना सरल है।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.