2011-04-25 10 views
7

पर पोर्टिंग एडब्ल्यूटी ग्राफिक्स कोड पोर्ट्रॉइड हम एंड्रॉइड प्लेटफ़ॉर्म पर हमारे कुछ मौजूदा जावा एडब्ल्यूटी ग्राफिक्स कोड का उपयोग करना चाहते हैं। जहाँ तक मेरा बता सकते हैं, एंड्रॉयड AWT वर्गों के किसी भी शामिल नहीं है - कोई Graphics2D, Path2D, FontMetrics, आदिएंड्रॉइड

बंदरगाह के लिए सबसे अच्छा तरीका हमारे ड्राइंग कोड Android में क्या है? आदर्श रूप में, हम दोनों एंड्रॉइड और जेनेरिक जावा को लक्षित करने के लिए हमारे कोड बेस को संशोधित करना चाहते हैं।

+1

awt-android-compat प्रोजेक्ट देखें: http://code.google.com/p/awt-android-compat/। दुर्भाग्यवश, हाल ही में बहुत अधिक गतिविधि नहीं हुई है, इसलिए यह अभी भी बहुत शुरुआती चरण में है। लगता है कि एंड्रॉइड के आंतरिक कोड में एडब्ल्यूटी के कुछ संदर्भ हैं, लेकिन इसका उपयोग करना असंभव प्रतीत होता है। शायद यह awt-android-compat प्रोजेक्ट में योगदान करने में उपयोगी हो सकता है? मुझे यकीन नहीं है। http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2.2_r1/com/android/internal/awt/AndroidGraphics2D.java#AndroidGraphics2D – Josh1billion

+0

awt एंड्रॉइड संगतता: मृत, बहुत सारे मुद्दे। –

+1

यहां ग्राफिक्स एपिस के लिए बनाया गया एक रैपर है, यह पूरी तरह से पूर्ण नहीं है लेकिन इसमें बहुत सारी कार्यक्षमता है। http://pastebin.com/b5TFWSqQ – schwiz

उत्तर

6

एंड्रॉइड प्लेटफार्म awt के एक छोटे से सबसेट का समर्थन करता है। छोटे से, मेरा मतलब है कि यह अजीब फोंट का समर्थन करता है। जावा स्विंग से जा रहे हैं (क्या आप वास्तव में केवल एक स्टैंडअलोन यूआई के रूप में उपयोग कर रहे हैं?) एंड्रॉइड के लिए सिस्टम के लिए एक झटका होगा। एक एक्सएमएल संसाधन फाइलों में एंड्रॉइड के यूआई को परिभाषित करता है, और उन संसाधनों को गतिविधि कक्षाओं में लोड किया जाता है जो एप्लिकेशन की तार्किक इकाई का प्रतिनिधित्व करते हैं। कैनवास 'ग्राफिक्स 2 डी ऑब्जेक्ट्स को प्रतिस्थापित करता है, और उनके पास कुछ अलग कार्यक्षमता है। एंड्रॉइड यूआई सिस्टम पूर्ण स्थिति से बचने की कोशिश करता है, जो जावा यूआई में आम है। और एंड्रॉइड के लिए विचार करने के लिए बहुत कुछ है, जैसे स्क्रीन आकार और संकल्प में मतभेद। जावा एसई के लिए इनमें से कोई भी मुद्दा नहीं था। अपने प्रश्न का उत्तर देने के लिए: आपके पास अपना काम आपके लिए कट गया है और आपको स्क्रैच से अपना कोडिंग शुरू करना होगा।

मुझे यकीन नहीं है कि 'ड्राइंग कोड' का अर्थ क्या है, लेकिन मेरे मामले में, मेरे पास बड़ी संख्या में एनीमेशन कोड है जो बहुत आकार के माध्यम से प्रदर्शित होता है। यह एंड्रॉइड पर पुन: उत्पन्न करने योग्य है क्योंकि graphics.drawable.shapes ऑब्जेक्ट्स हैं, और कोई canvas.drawCircle (x, y, z, h) (कुछ आपको याद दिलाता है) करके आदिम आकार प्रदर्शित कर सकता है। लेकिन जब मैंने इसे पोर्ट किया, तो मुझे कठिनाई हुई और महसूस हुआ कि मैं एंड्रॉइड को ऐसा कुछ करने के लिए मजबूर कर रहा था जो वास्तव में नहीं चाहता था, और ऐसा करने का इरादा नहीं था। अपने प्रश्न का जवाब देना मुश्किल है, जिसकी वजह से इसकी अस्पष्टता दी गई है।

+0

आपने लिखा "एंड्रॉइड यूआई सिस्टम पूर्ण स्थिति से बचने की कोशिश करता है, जो जावा यूआई में आम है"। मुझे लगता है कि स्थिति दोनों प्रणालियों पर समान है। क्या आप समझा सकते हैं कि मैं कहां गलत हूं? पृष्ठभूमि infos: मेरे पास एक समान मुद्दा है। क्या मुझे कुछ जावा.एट कोड लागू करना चाहिए जो केवल संरचना के लिए उपयोग किए जाते हैं और ड्राइंग के लिए नहीं। जैसे awt.Rectangle2D की तरह? या मैं एंड्रॉइड में एप्लिकेशन को पूरी तरह से refactor चाहिए। अगर मुझे रिफैक्टर होना चाहिए, तो मुझे लगता है कि यह बहुत प्रयास करेगा। दूसरी तरफ, मैं वास्तव में नहीं जानता कि अगर मैं java.awt अनुकरण करने का प्रयास करता हूं तो क्या परिणाम हैं। – dritan

2

मुझे नहीं लगता कि आप एंड्रॉइड को पोर्ट एडब्ल्यूटी कर सकते हैं। मेरा मतलब है, यह जावा एसई बनाम इसके सबसेट (या एक पसंदीदा जावा एमई स्टेरॉयड के साथ है, जैसा कि आप पसंद करते हैं)।

हालांकि, जावा एमई के लिए कुछ यूआई कक्षाएं हैं जो एंड्रॉइड पर पूरी तरह से काम करती हैं। व्यक्तिगत रूप से मुझे LWUIT पसंद है लेकिन यह केवल एकमात्र नहीं है।