动机
在cocos2dx中实现android平台自定义相机。万里长征第一步:实现背景透明。
效果看顶部banner。
Android端
- 到Manimefest中,将AppActivity的主题设置为支持透明的:
1
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
- 设置GLView的clearColor的alpha值为0。根据情况设置吧,可以在c++上改,也可以在lua层改。
1 | // C++ |
- 如果在在屏幕上方出现一个白色条,那是
Cocos2dxEditText
(COCOS封装的EditBox,也是可以去掉的。游戏中用到了用EditBox代替即可。)去掉方法如下:1
2
3
4
5//Cocos2dxActivity.java 注释掉下面几行
- Cocos2dxEditBox edittext = new Cocos2dxEditBox(this);
- edittext.setLayoutParams(edittext_layout_params);
- mFrameLayout.addView(edittext);
- this.mGLSurfaceView.setCocos2dxEditText(edittext);
iOS端
- GLView设置透明和上面一样:
1
2
3
4
5
6
7
8
9// C++
// 修改AppDelegate.cpp中applicationDidFinishLaunching方法。
Director::getInstance()->setClearColor(Color4F(0, 0, 0, 1));
// lua 在需要透明的地方调用:
cc.Director:getInstance():setClearColor(cc.c4f(0, 0, 0, 0))
// oc
cocos2d::Director::getInstance()->setClearColor(cocos2d::Color4F(0,0,0,0));