2012-01-16 17 views
5

एंड्रॉइड के लिए java.awt.Dimension के बराबर रूप क्या है?एंड्रॉइड पर जावा के लिए कक्षा आयाम

+6

तुम्हारा मतलब जावा स्विंग आयाम वर्ग equivivalent कार्य करें: हालांकि, इस जब एंड्रॉयड ढांचे से ही प्रदर्शन की चौड़ाई और ऊंचाई हो रही के रूप में यहाँ देखा वर्ग/दुरुपयोग उपयोग करने के लिए हो रहा है? एकल पंक्ति प्रश्न उपयोगी उत्तर नहीं मिल सकता है। कृपया जितनी जानकारी हो सके उतनी जानकारी प्रदान करें। – kosa

+0

हाँ !! इसका जावा स्विंग आयाम वर्ग समतुल्य – Thiyagu

उत्तर

1

आप Pair<Integer, Integer> का उपयोग कर सकते हैं जो एंड्रॉइड की जेनेरिक टुपल क्लास है। (getWidth() और getHeight()first और second के साथ प्रतिस्थापित करने की आवश्यकता होगी।) एंड्रॉइड एपीआई के अन्य स्थानों में एंड्रॉइड टीम इस उद्देश्य के लिए विज्ञापन-प्रसार कक्षाओं का उपयोग करती है, उदाहरण के लिए Camera.Size

+1

जोड़ी <इंटीजर, इंटीजर> में इंटीजर मुक्केबाजी के लिए 2 अतिरिक्त "नया" होगा जो अंततः कचरा इकट्ठा करने की आवश्यकता होगी। जैसे यदि आप लेआउट कोड में आयामों का उपयोग कर रहे हैं और बहुत सारे विचार हैं तो यह जीसी() पर अनावश्यक अतिरिक्त बोझ है। इसके बजाय आप परमाणु प्रकार के साथ आयाम धारक को कार्यान्वित कर सकते हैं और दृश्य डेटा सदस्य को इसे देखने के जीवनकाल के लिए रख सकते हैं और इसका उपयोग उदाहरण में कर सकते हैं। लेआउट एल्गोरिदम w/o किसी मुक्केबाजी/अनबॉक्सिंग और कचरा संग्रहण। वैसे ही बुनियादी एंड्रॉइड विचार आवंटन से बचने के लिए अस्थायी संदर्भ [एफ] भंडारण का उपयोग कर रहे हैं। जोड़ा गया लाभ यह है कि जेआईटी अंतिम तरीकों को रेखांकित कर सकता है - तेज़ कोड – Leo

0

तुम क्यों बजाय की तरह अत्यंत सरल कुछ को लागू करने के अन्य वर्गों का दुरुपयोग करने की आवश्यकता है:

public class Dimensions { 

    public int width; 
    public int height; 

    public Dimensions() {} 

    public Dimensions(int w, int h) { 
     width = w; 
     height = h; 
    } 

    public Dimensions(Dimensions p) { 
     this.width = p.width; 
     this.height = p.height; 
    } 

    public final void set(int w, int h) { 
     width = w; 
     height = h; 
    } 

    public final void set(Dimensions d) { 
     this.width = d.width; 
     this.height = d.height; 
    } 

    public final boolean equals(int w, int h) { 
     return this.width == w && this.height == h; 
    } 

    public final boolean equals(Object o) { 
     return o instanceof Dimensions && (o == this || equals(((Dimensions)o).width, ((Dimensions)o).height)); 
    } 

} 
+2

क्योंकि अधिकांश प्रोग्रामर 'हैशकोड()' और 'पार्ससेलबल' को लागू करना भूल जाते हैं और इस तरह के प्रतिबंधों के साथ बहुमूल्य समय बर्बाद कर देते हैं, जब वे केवल 'प्वाइंट' ठीक एंड्रॉइड एपीआई और अधिक दबाव मामलों पर चले गए;) –

7

आप इन विकल्पों में से एक चुन सकते हैं:

  1. android.util.Size (एपीआई 21 के बाद से)। इसमें getWidth() और getHeight() है लेकिन यह अपरिवर्तनीय है, जिसका अर्थ यह है कि इसे बनाया जाने पर आप इसे संशोधित नहीं कर सकते हैं।

  2. android.graphics.Rect। इसमें getWidth() और getHeight() हैं लेकिन वे आंतरिक left, top, right, bottom पर आधारित हैं और इसके सभी अतिरिक्त चर और उपयोगिता विधियों के साथ फूले हुए प्रतीत हो सकते हैं।

  3. android.graphics.Point जो एक सादे कंटेनर है, लेकिन नाम सही नहीं है और यह सदस्यों x और y जो आकार के लिए आदर्श नहीं है कहा जाता है मुख्य है।

    Display display = getWindowManager().getDefaultDisplay(); 
    Point size = new Point(); 
    display.getSize(size); 
    int width = size.x; 
    int height = size.y; 
    
संबंधित मुद्दे