cocos2dx 中通过 jni 显示UI
来源:互联网 发布:hello kitty主题软件 编辑:程序博客网 时间:2024/05/21 21:43
cocos2dx开发中,经常用到第三方sdk。(如分享,广告等)。这些sdk一般用java实现,且自带UI。此文介绍如何通过jni实现这些ui的正常显示。
当用c++调用java时,jni会启动子线程,在子线程中调用java,而我们知道子线程是不能用来显示UI的。所以,若要ui正常显示,就得做一些处理。
jni的相关内容,这里就不提了,下面只说说java层如何实现。我们以对话框为例
步骤很简单
1、 创建一个static的Handler showDlgHandler
2、 创建一个static的Runnable showDlgRunnable
3、 当c++调用java时,调用 showDlg.post(showDlg)
代码如下:
public class androidTF extends Cocos2dxActivity{// 创建一个static的Handlerprivate static Handler showDlgHandler = new Handler(); protected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);} public Cocos2dxGLSurfaceView onCreateView() { Cocos2dxGLSurfaceView glSurfaceView = new Cocos2dxGLSurfaceView(this); // androidTF should create stencil buffer glSurfaceView.setEGLConfigChooser(5, 6, 5, 0, 16, 8); return glSurfaceView; } static { System.loadLibrary("cocos2dcpp"); } public static void showDlg(){showDlgHandler.post(showDlgRunnable);} private static Runnable showDlgRunnable = new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubconformOkCancle("titletest", "msgtest", "ok", "cancle");}}; private static void conformOkCancle(CharSequence title, CharSequence msg, CharSequence ok, CharSequence cancle){AlertDialog.Builder builder = new AlertDialog.Builder(Cocos2dxActivity.getContext());builder.setTitle(title);builder.setMessage(msg);builder.setCancelable(false);builder.setPositiveButton(ok, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubdialog.dismiss();}});builder.setNegativeButton(cancle, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubdialog.dismiss();}});AlertDialog dlg = builder.create();if(dlg != null){dlg.show();}}}
- cocos2dx 中通过 jni 显示UI
- [cocos2dx]在cocos2dx中通过Jni实现Java与C++的互相调用(一)
- [cocos2dx]在cocos2dx中通过Jni实现Java与C++的互相调用(二)
- cocos2dx::ui::Text 显示问题
- cocos2dx通过Jni调用Android的Java
- cocos2dx 中JNI native的使用
- cocos2dx 中JNI native的使用
- cocos2dx 3.1中显示中文
- cocos2dx --- 在游戏中显示HTML页面
- 在UI中显示Bitmap
- 在UI中显示Bitmap
- 在UI中显示Bitmap
- Cocos2dx------通过从xml文件读取中文显示中文,通过fnt文件显示特殊的字体
- cocos2dx 的jni封装
- cocos2dx jni交互问题
- cocos2dx的jni使用
- JNI针对于cocos2dx
- cocos2dx jni 互调
- ios判断是否为数字(全拼数字)
- 数据结构中三表合一的实现
- 设计模式之禅笔记——工厂模式
- C/C++ 内存分配
- mycopyFile_linux下实现简单文件的复制
- cocos2dx 中通过 jni 显示UI
- qq,sina第3方登录js版
- INNODB 和 MYISAM 区别 事物处理
- Ubuntu eclipse :An error has occurred. See the log file
- The difference between the int value ++; and the value;
- C语言中printf格式化输出函数
- vs2010编译osg源码问题:error C2780
- mybatis学习整理(用户手册)(完整的全面学习)
- 在一个窗口应用程序中创建一个console窗口