2013-11-27 9 views
9

मेरा ऐप एक छवि पृष्ठभूमि के (पीछे से सामने) बना है, फिर एक glSurfaceView जिसमें 3 डी ऑब्जेक्ट होता है और शीर्ष 2 बटन होते हैं। मैं GLSurfaceView की पृष्ठभूमि पारदर्शी होने और पीछे की छवि को देखना चाहता हूं।मैं एक पारदर्शी पृष्ठभूमि के साथ glSurfaceView के शीर्ष पर एक दृश्य कैसे डाल सकता हूं?

मैं दो समाधान की कोशिश की है, लेकिन उनमें से कोई संतोषजनक है:

mGLSurfaceView = new GLSurfaceView(mContext); 
mGLSurfaceView.setEGLContextClientVersion(2);   
mGLSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 16, 0); 
mGLSurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT); 
mGLSurfaceView.setZOrderOnTop(true); 
mGLSurfaceView.setRenderer(mRenderer); 

इस मामले में, मैं पृष्ठभूमि देख सकते हैं, लेकिन 3D वस्तु अन्य सभी लेआउट के शीर्ष पर चल रहा है, कभी-कभी बटन छुपाते हैं।

mGLSurfaceView = new GLSurfaceView(mContext); 
mGLSurfaceView.setEGLContextClientVersion(2);   
mGLSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 16, 0); 
mGLSurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT); 
mGLSurfaceView.setZOrderMediaOverlay(true); 
mGLSurfaceView.setRenderer(mRenderer); 

उस मामले में, मैं बटन देख सकते हैं, लेकिन GLSurfaceView नहीं रह गया है पारदर्शी है और मैं छवि पृष्ठभूमि नहीं देख सकता। मैंने अन्य सभी विषयों को पार्स किया है, लेकिन उनमें से कोई भी मुझे कोई संतोषजनक उत्तर नहीं देता है।

+1

मैं इस समस्या के उत्तर के लिए भी क्रूसेडिंग कर रहा हूं। जहां तक ​​मैं कह सकता हूं कि कुछ उपकरणों पर यह असंभव है। अन्य उपकरणों पर दूसरा मामला एक ट्रांसपरेंट SurfaceView में परिणाम देता है। –

+0

आश्चर्यजनक रूप से मुझे एंड्रॉइड 2.3 पर यह समस्या नहीं है। केवल 4. * –

+0

यहां कोई भी सहायता sweeeeet – Gerard

उत्तर

1
final GLSurfaceView glView = (GLSurfaceView) findViewById(R.id.glView); 

glView.setZOrderOnTop(true); 
glView.setEGLConfigChooser(8, 8, 8, 8, 16, 0); 
glView.getHolder().setFormat(PixelFormat.RGBA_8888); 
glView.setRenderer(new MyRenderer()); 
glView.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY); 

अतः डाक द्वारा दिए गए: Android GLSurfaceView transparent background without setZOrderonTop और मूल ब्लॉग पोस्ट: How to set a transparent GLSurfaceView

+0

मैंने कोशिश की कि यह मेरे लिए काम नहीं कर रहा है। – Gerard

+0

अंत में! धन्यवाद! पूरे दिन शुक्रवार को यह पता लगाने की कोशिश की गई। –

+0

आपके लिए जवाब देने में खुशी हुई, टीजे बिडल –

0

setZOrderOnTop() काम करता है, लेकिन इसका मतलब है कि आप इस SurfaceView, के शीर्ष पर किसी भी ग्राफिक्स नहीं लगा सकेंगे जो दुर्भाग्यपूर्ण है।

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