मैं एक Android ओपन आवेदन शुरू कर दिया और मैं निम्नलिखित श्रेणियां होती हैं:एंड्रॉयड XML का उपयोग ओवरले के साथ glSurfaceView/जावा
class A extends Activity
class B extends GlSurfaceView implements Renderer
जब क्लास ए के onCreate कहा जाता है, यह प्रकार वर्ग बी की एक वस्तु बनाता है और कहता है:
setContentView(Bobject)
अब तक यह काम करता है और मैंने इसमें कुछ दिन बिताए।
अब मैं अपने आवेदन में बटन जोड़ना चाहता था और SurfaceViewOverlay उदाहरण पाया। यह दृश्य पदानुक्रम बनाने के लिए कुछ एक्सएमएल का उपयोग करता है। मैं बहुत मैं करने के लिए कुछ इसी तरह बस में कटौती बनाएं और उसे XML कोड पेस्ट करना चाहता था:
<android.opengl.GLSurfaceView android:id="@+id/glsurfaceview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<LinearLayout android:id="@+id/hidecontainer"
android:orientation="vertical"
android:visibility="gone"
android:background="@drawable/translucent_background"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent">
...
अब मन में अपने मूल वर्ग पदानुक्रम रखते हुए, मैं अपने विचारों कैसे प्रारंभ होगा? मुझे अपनी कक्षा ए के क्रिएट() में क्या लिखना चाहिए?
मैं उपयोग करने की कोशिश:
Bobject = new B(this);
GLSurfaceView glSurfaceView =
(GLSurfaceView) findViewById(R.id.glsurfaceview);
glSurfaceView.setRenderer(Bobject);
और यह बटन और स्क्रीन पर जीएल दृश्य आकर्षित करता है, लेकिन जीएल दृश्य नल/क्लिक से किसी भी इनपुट में लेने में असमर्थ है।
इस रूप में यह केवल एक के रूप में इस्तेमाल किया जा रहा है क्योंकि Bobject के onTouchEvent() कहा जाता है नहीं कर रहा है की संभावना है:
Renderer
और नहीं एक:
glSurfaceView
वस्तु।
उपरोक्त कोड के बजाय, मैं वास्तव में क्या चाहता हूं कि बॉबजेर glSurfaceView को प्रतिस्थापित करे। लेकिन मुझे नहीं पता कि यह कैसे करना है। जब मुझे लगता है ViewById(), ऐसा लगता है कि glSurfaceView पहले से ही बनाया गया है। जीएल व्यू के लिए टाइप बी के ऑब्जेक्ट का उपयोग करने के लिए मैं इसे कैसे कह सकता हूं?
किसी भी नौसिखिया गलतियों के बारे में खेद है। एंड्रॉइड के लिए पूरी तरह से नया।
संपादित करें: मैं भी करने की कोशिश की इस:
मैं भी करने की कोशिश की है:
<com.bla.bla.B
android:id="@+id/glsurfaceview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
और मेरे एक वर्ग निर्माता मैं बोल रहा हूँ में: मेरी एक्सएमएल फ़ाइल में, मैं करने के लिए GLSurfaceView बदल दिया है:
// This returns null
Bobject = (B) findViewById(R.id.glsurfaceview);
// And this suspends the application. :(
setContentView(R.layout.surface_view_overlay);
मुझे अपनी कस्टम कक्षा का उपयोग कैसे करना चाहिए जो मेरी XML फ़ाइल/गतिविधि में glSurfaceView को विस्तारित करता है?
मैं एक ही समस्या से फंस गया हूं और इस बात का प्रदर्शन करने वाला एक पूरा आवेदन नहीं मिला। क्या कोई कुछ उदाहरण एप्लिकेशन दिखा सकता है? मुझे कहीं भी एंड्रॉइड नमूनों से इस प्रसिद्ध SurfaceOverlayView उदाहरण नहीं मिल रहा है। अग्रिम में धन्यवाद। – rgngl