2010-10-02 15 views
5

साथ GLSurfaceView मैंएंड्रॉयड drawable पृष्ठभूमि

मैं setZOrderOnTop (सही) का उपयोग कर स्थिर देखते हैं क्योंकि बचने की जरूरत है लेकिन केवल पृष्ठभूमि जब surfaceView.setZOrderOnTop (सही) के बिना गाया दिख रहा है पृष्ठभूमि के रूप में एक drawable के साथ एक GLSurfaceView है, GLSurfaceView के शीर्ष पर TextView का उपयोग किया जा रहा है।

इसे काम करने के लिए कोई सुझाव?

उत्तर

9

GLSurfaceView वास्तव में एक पृष्ठभूमि नहीं कर सकते हैं । जिस तरह से सतह दृश्य काम करता है वह आपकी गतिविधि की खिड़की के माध्यम से छेद काटने और पीछे की सतह को दिखाकर होता है। SetZOrderOnTop (सत्य) सेट करना गतिविधि की विंडो के ऊपर की सतह को ले जाता है।

+0

धन्यवाद कि बहुत उपयोगी था! क्या कोई तरीका है कि आप मुझे जो चाहिए उसे प्राप्त करने के लिए सिफारिश कर सकते हैं: स्थैतिक पृष्ठभूमि छवि -> 3 डी सामग्री -> शीर्ष पर अतिरिक्त दृश्य बटन या बहुभुज पर बनावट के रूप में स्थिर पृष्ठभूमि को प्रस्तुत करने का एकमात्र तरीका है? – Jlam

+1

मैं बस सबकुछ के पीछे बहुभुज पर पृष्ठभूमि प्रस्तुत करना समाप्त कर दिया .. टिप के लिए धन्यवाद! – Jlam

1

ठीक है, के बाद से GLSurfaceView सिर्फ एक और देखने के लिए, क्यों एक FrameLayout का उपयोग नहीं imageView के शीर्ष पर GLSurfaceView जगह (या जो भी आप drawable प्रदर्शित करने के लिए प्रयोग कर रहे हैं।) है

+0

इसे थक गया लेकिन यह निम्न स्थितियों के कारण काम नहीं कर रहा था: 1. ग्ल परत में निरंतर पृष्ठभूमि छवि है। 2. बटन परत जैसे ग्लो परत के शीर्ष पर अतिरिक्त तत्व हैं। स्थैतिक छवि को ग्ल परत पर पृष्ठभूमि के रूप में सेट करना संभव नहीं था क्योंकि वास्तविक 3 डी सामग्री तब तक प्रस्तुत नहीं की जाएगी जब तक कि मैं zZrderOnTop (true) को सेट नहीं करता ग्ल परत लेकिन अगर मैं ऐसा करता हूं तो अतिरिक्त तत्व ग्ल परत के नीचे समाप्त हो जाएंगे। – Jlam

6

झूठी! तुम कर सकते हो। यह दिखाने के लिए बस एक उदाहरण है कि यह कैसे काम करता है।

glRenderer = new OpenGLRenderer(context); 
view = new GLSurfaceView(context); 
view.setEGLConfigChooser(8, 8, 8, 8, 16, 0); 
view.setRenderer(glRenderer); 
view.getHolder().setFormat(PixelFormat.RGBA_8888); 
view.getHolder().setFormat(PixelFormat.TRANSLUCENT); 
view.setRenderMode(GLSurfaceView.RENDERMODE_CONTINUOUSLY); 

फिर glsurfaceview के तहत एक दृश्य डालने के लिए framelayout का उपयोग करें!

+0

धन्यवाद। यह मेरे जीएलएसयूफेस व्यू वंश पारदर्शी बना दिया। लेकिन वास्तव में REDERMODE_CONTINUOUSLY डिफ़ॉल्ट मान है और मेरे लिए अंतिम पंक्ति जोड़ने से ऐप क्रैश हो जाता है। –

+1

ऐसा इसलिए है क्योंकि आपको view.setRenderer –

+0

से पहले RenderMode सेट करना होगा GLsurfaceView के ऊपर अन्य विचारों को रखने के लिए फ्रेमलेआउट में क्या रखना है? –

2

setZOrderMediaOverlay (सत्य) आज़माएं; जो पृष्ठभूमि के ऊपर लेकिन परत के नीचे gl परत रखना चाहिए।

संबंधित मुद्दे