2

我正在玩游戏,而游戏正在运行我需要显示一个带有一些来自网络的指令的 web 视图,这可能吗?

这些指令将一次又一次地显示,并且是动态的,因为它们来自服务器。

你能帮我吗?我不能使用 LayoutBaseGameActivity 因为我不想总是显示它们。

我想暂停游戏并显示一个可点击的网页视图。请帮忙。

4

2 回答 2

1

您可以添加到您的游戏活动以显示 WebView 并在需要时调用 openWebViewURL 或 openWebViewHTML

@Override
protected void onSetContentView() {
    final FrameLayout frameLayout = new FrameLayout(this);
    final FrameLayout.LayoutParams frameLayoutLayoutParams =
            new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT,
                    FrameLayout.LayoutParams.FILL_PARENT);

    mRenderSurfaceView = new RenderSurfaceView(this);
    mRenderSurfaceView.setRenderer(mEngine, this);

    final android.widget.FrameLayout.LayoutParams surfaceViewLayoutParams =
            new FrameLayout.LayoutParams(super.createSurfaceViewLayoutParams());

    final FrameLayout.LayoutParams webViewLayoutParams =
            new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, 100,
                    Gravity.CENTER_HORIZONTAL|Gravity.BOTTOM);

    webView = new WebView(this);

    frameLayout.addView(this.mRenderSurfaceView, surfaceViewLayoutParams);
    frameLayout.addView(webView, webViewLayoutParams);
    this.setContentView(frameLayout, frameLayoutLayoutParams);

    webView.setVisibility(webView.INVISIBLE);

}

private void openWebViewURL(String url) {

    webView.loadUrl(url);

    this.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            webView.setVisibility(webView.VISIBLE);
        }
    });
}

private void openWebViewHTML(String html) {

    webView.loadData(html,"text/html", "en_US");

    this.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            webView.setVisibility(webView.VISIBLE);
        }
    });
}
于 2013-05-20T09:11:13.703 回答
-2

我建议你开始一个新的活动来显示网页。用户可以在完成后关闭活动。而且游戏没有任何变化。:D 希望它可以帮助你 :D

于 2013-05-20T07:44:13.887 回答