2015-05-13 1 views
1

Я создаю Cubeview, который расширяет GLSurfaceview, и я хочу сделать прозрачный фон, но не могу этого сделать.Установить прозрачность в GLSurfaceview

Я уже использую setZOrderOnTop() в MainActivity & glClearColor() в GLSurfaceview зрения класса, а также следить за многими link, но не работают.

public class RubikActivity extends Activity { 
cubeView cv; 
GLSurfaceView gv; 
@Override 
public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity); 
    cv = (cubeView) findViewById(R.id.cubeView); 
    cv.initialize(PreferenceManager.getDefaultSharedPreferences(this)); 
    cv.requestFocus(); 
    cv.setFocusableInTouchMode(true); 
    cv.setEGLConfigChooser(8, 8, 8, 8, 8,0); 
    // cv.setRenderer(new CubeRenderer(getApplicationContext(), font, mWorld, rCube, mMenu, prefs); 
    cv.getHolder().setFormat(PixelFormat.TRANSLUCENT); 
    cv.setZOrderOnTop(true); 

} 

CubeView.java

public cubeView(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    font = new TextureFont(getContext(), R.drawable.roboto_regular, "roboto_regular_dims.txt"); 
    mWorld = new GLWorld(); 

} 

public void initialize(SharedPreferences prefs) { 

    rCube = new Rubec(mWorld, prefs.getInt("dim", 3)); 
    mMenu = new CubeMenu(rCube, font); 
    _renderer = new CubeRenderer(getContext(), font, mWorld, rCube, mMenu, prefs); 
    rCube.setRenderer(_renderer); 
    mWorld.setRubeCube(rCube); 
    setRenderer(_renderer); 

    getHolder().setFormat(PixelFormat.TRANSLUCENT); 
    setZOrderOnTop(true); 
} 

CubeRenderer.java

public void onDrawFrame(GL10 g) { 
    GL11 gl = (GL11)g; 

    surfaceSetup(gl); 

    gl.glClearColor(0,0,0,1); 
    gl.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT); 
} 

Я хочу прозрачный Cubeview

+1

случайная попытка - 'surfaceView.setEGLContextClientVersion (2); surfaceView.setZOrderOnTop (true); surfaceView.setEGLConfigChooser (8, 8, 8, 8, 16, 0); surfaceView.getHolder(). SetFormat (PixelFormat.RGBA_8888); ' – Kiran

+0

@Kiran Я попробовал, но не работал для меня ................... n спасибо за помощь мне –

ответ

0

Вы очистки экрана к непрозрачным черным. Изменить gl.glClearColor(0,0,0,1) до gl.glClearColor(0,0,0,0) если хотите прозрачный черный.

+0

Я уже пробовал, но не работал, он показывает фон темным черным, я хочу полностью прозрачный, а не он. –

+0

Я также следую за этим - http://stackoverflow.com/questions/16762633/android-glsurfaceview-transparent-background-without-setzorderontop?rq=1, но такая же проблема –