本文介绍的效果在游戏方面可能用的比较少,但是在应用上,比如智能机顶盒的应用就很犀利。半透明的效果,隐约可见的桌面,只能说狂拽酷炫叼炸天。。(本文暂适合3.0rc版,Android native activity)
如果你的版本使用的是Java Activity,则可以参考http://www.cocoachina.com/bbs/read.php?tid=224544此文进行操作。
废话不多说,先放图。
就如果你想让你的activity透明,很简单,只需要4步。
- 打开AndroidManifest.xml文件,添加Translucent到
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> ``` 2.打开Cocos2dxActivity.java文件,添加getWindow().setFormat(PixelFormat.TRANSLUCENT); ``` 3.打开cocos2d/cocos/2d/CCDirector.cpp文件,找到setGLDefaultValues()函数,修改最后一个alpha值,范围从0.0f到1.0f。glClearColor(0.0f, 0.0f, 0.0f, 1.0f); ``` 4.打开cocos2d/cocos/2d/platform/android/nativeactivity.cpp,找到engine_init_display(struct engine* engine)函数,修改如下数组 从const EGLint attribs] = { EGL_SURFACE_TYPE, EGL_WINDOW_BIT, EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, EGL_BLUE_SIZE, 5, EGL_GREEN_SIZE, 6, EGL_RED_SIZE, 5, EGL_DEPTH_SIZE, 16, EGL_STENCIL_SIZE, 8, EGL_NONE }; ``` 到const EGLint attribs] = { EGL_SURFACE_TYPE, EGL_WINDOW_BIT, EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, //EGL_BLUE_SIZE, 5, -->delete //EGL_GREEN_SIZE, 6, -->delete //EGL_RED_SIZE, 5, -->delete EGL_BUFFER_SIZE, 32, //-->new field EGL_DEPTH_SIZE, 16, EGL_STENCIL_SIZE, 8, EGL_NONE }; ``` 搞定收工。