在cocos2d-x界面中嵌入Android的WebView
在Cocos2dxActivity.java中,(1) 增加函数onCreateLayout,
[java
public LinearLayout onCreateLayout(Cocos2dxGLSu易做图ceView su易做图ceView) {
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
layout.addView(su易做图ceView);
return layout;
}
(2) 在 this.mGLSu易做图ceView = this.onCreateView() 下面增加这一行:
[java]
LinearLayout contentLayout = this.onCreateLayout(mGLSu易做图ceView);
(3) 应用的Activity文件实现如下,
[java]
public class HelloCpp extends Cocos2dxActivity{
static HelloCpp sHelloCpp = null;
LinearLayout mContentLayout;
Cocos2dxGLSu易做图ceView mGlSu易做图ceView;
LinearLayout mWebLayout;
WebView mWebView;
Button mBackButton;
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
}
public LinearLayout onCreateLayout(Cocos2dxGLSu易做图ceView su易做图ceView) {
mGlSu易做图ceView = su易做图ceView;
sHelloCpp = this;
mContentLayout = new LinearLayout(this);
mContentLayout.setOrientation(LinearLayout.VERTICAL);
mContentLayout.addView(su易做图ceView);
mWebLayout = new LinearLayout(this);
mWebLayout.setOrientation(LinearLayout.VERTICAL);
return mContentLayout;
}
public Cocos2dxGLSu易做图ceView onCreateView() {
Cocos2dxGLSu易做图ceView glSu易做图ceView = new Cocos2dxGLSu易做图ceView(this);
// TestCpp should create stencil buffer
glSu易做图ceView.setEGLConfigChooser(5, 6, 5, 0, 16, 8);
return glSu易做图ceView;
}
//此函数提供给jni调用,返回自身类的对象
public static HelloCpp getInstance() {//返回实例
return sHelloCpp;
}
public void openWebView() {
this.runOnUiThread(new Runnable() {//在主线程里添加别的控件
public void run() {
//初始化webView
mWebView = new WebView(HelloCpp.this);
//设置webView能够执行javascript脚本
mWebView.getSettings().setJavaScriptEnabled(true);
//载入URL
mWebView.loadUrl("file:///android_asset/index.html");
//使页面获得焦点
//mWebView.requestFocus();
//如果页面中链接,如果希望点击链接继续在当前browser中响应
mWebView.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(url.indexOf("tel:")<0){
view.loadUrl(url);
}
return true;
}
});
/*初始化返回按钮*/
mBackButton = new Button(HelloCpp.this);
mBackButton.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
mBackButton.setText("Close");
mBackButton.setTextColor(Color.argb(255, 255, 218, 154));
mBackButton.setTextSize(14);
mBackButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
removeWebView();
mGlSu易做图ceView.setVisibility(View.VISIBLE);
}
});
//把webView加入到线性布局
mGlSu易做图ceView.setVisibility(View.GONE);
mWebLayout.addView(mBackButton);
mWebLayout.addView(mWebView);
mContentLayout.addView(mWebLayout);
}
});
}
//移除webView 把刚才加的所有控件都删掉
public void removeWebView() {
mContentLayout.removeView(mWebLayout);
mWebLayout.destroyDrawingCache();
mWebLayout.removeView(mWebView); &nbs
补充:移动开发 , 其他 ,
- 更多wap疑问解答:
- 新人求助QPainter
- 为什么程序都退出了还可以收到推送?如果大多设备都可以推送那运营商怎么办?
- qt 4.7 sqlserver2000 存储过程调用
- 关于ANDROID4.0.1编译问题!
- Android FrameBuffer读屏幕30秒后mmap失败
- 联通粗定位用java程序如何来请求和接受数据
- 为什么QT运行Android平台的程序时,mouseMoveEvent事件响应的间隔时间很长??????????
- android与PC蓝牙通讯
- 指定大小的label 内容可变,如果内容超出label的宽度,将未能显示的部分显示在另一个label上
- Android调试
- android如何通过wifi连接无线打印机
- 运行程序,release目录下产生一个乱码文件夹
- 分享个某机构最新安卓资料,自己验证了
- service启动不起来,掉不了service connection
- 求助:QT5.0 没有QPrinter吗