2010-10-18 13 views
6

पर एक एंड्रॉइड लेआउट ओवरले करें मैं Google द्वारा प्रदान किए गए चंद्र लैंडर नमूने के समान सतह दृश्य का उपयोग करके एक साधारण एंड्रॉइड गेम डिज़ाइन कर रहा हूं। मैं पृष्ठभूमि में अभी भी सतह दृश्य के साथ स्क्रीन पर पॉप अप करने के लिए हाईस्कॉरेस, संदेश, मेनू इत्यादि जैसी विभिन्न चीजें रखना चाहता हूं।सतहदृश्य

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

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

यह मुझे कुछ सरल के रूप में मारता है लेकिन मुझे लगता है कि इसे कैसे प्राप्त किया जाए।

उत्तर

3

ऐसा करने का एक आसान तरीका आपके पॉपअप इंटरफेस को एक अलग गतिविधि के रूप में बना रहा है। इसके बाद आप अपनी मैनिफेस्ट फ़ाइल में डायलॉग थीम की तरह एक पारदर्शी पृष्ठभूमि थीम देंगे।

एपीआई डेमो में कस्टमडिअलॉग, पारदर्शी और अनुवादकब्लूएल नमूने देखें। वे ऐसे सक्रियण बनाते हैं। तथ्य यह है कि अंतर्निहित गतिविधि सतह में है, कुछ भी नहीं बदला जाना चाहिए।

6

आप या तो कोड में या अपने एक्सएमएल लेआउट में SurfaceView के शीर्ष पर तत्वों को ओवरले कर सकते हैं।

<FrameLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    > 
<android.view.SurfaceView 
     android:id="@+id/mysurface" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     > 
</android.view.SurfaceView> 
</FrameLayout> 

और अपने Actiivty में:

TextView myText = new TextView(this); 
myText.setText("Something"); 
addContentView(myText, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 

प्रदर्शन के मुद्दों के बारे में हालांकि पता नहीं है।