Cocos2d-x JavaActivity 程序背景透明

之前发过一篇《如何在Cocos2d-x 3.0rc0中让程序背景透明》,但是由于3.0-rc0后Cocos2d-x更改为Java Activity,而不再是Native Activity,使得这种方法失效。


这里以最新的Cocos2d-x 3.2 release为例,介绍如何在Cocos2d-x中让程序背景透明。


一样,先上图:

1408513756377053.png:

修改的东西不多。主要有3步。


1.在AndroidManifest.xml中设置Activity背景透明

1
android:theme= "@android:style/Theme.Translucent.NoTitleBar.Fullscreen"

如图,

1408513804269151.png


2.在libcocos2dx项目的org.cocos2dx.lib项目中的Cocos2dxActivity.java文件中,修改init()方法。

增加如下代码:

1
2
3
this .mGLSurfaceView.setZOrderOnTop( true );
this .mGLSurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT);
this .mGLSurfaceView.setEGLConfigChooser(8,8,8,8,16,0);


删除如下代码(如果不删除的话,顶部会有一个Cocos2dxEditText的白条,Cocos2dxEditText封装了EditText,主要用于TextField,如果程序中有使用到它,那建议更换为EditBox)

1
2
//mFrameLayout.addView(edittext);
//this.mGLSurfaceView.setCocos2dxEditText(edittext);

如图,

1408513846632214.png

3.在libcocos2dx项目的org.cocos2dx.lib项目中的Cocos2dxRenderer.java文件中,修改onSurfaceCreated()方法。

增加如下代码:

1
2
3
4
5
pGL10.glDisable(GL10.GL_DITHER);
pGL10.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_FASTEST);
pGL10.glClearColor(0, 0, 0, 0);
pGL10.glEnable(GL10.GL_CULL_FACE);
pGL10.glShadeModel(GL10.GL_SMOOTH);

如图,

1408513950301584.png

点击这里下载本工程源码。


好了,如果有更好的办法欢迎加入论坛,参与本帖的讨论。

来源网址:http://www.cocoachina.com/bbs/read.php?tid=224544

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值