0

サーフェス (SurfaceView を拡張する) と AdView があり、動的に配置する必要がある WebView を追加したいと考えています。

まず、Web ビューを中央に追加し、そのサイズをデバイスの幅と高さの半分にしようとしています。私は 800X480 のデバイスとランドスケープ モードを使用しているので、今のところ、境界線を左 = 0、上 = 120、右 = 800、下 = 360 に設定してテストします。後で動的に設定できるようにしたいのですが、これまでのところうまくいきません:

private MySurface surface;
private AdView adView;
private WebView

.
.
.

// create the ad view
adView = new AdView(this, AdSize.SMART_BANNER, AD_MOB_ID);
adView.setAdListener(new MyAdListener());

// create the surface
surface = MySurface.getRef(this);

// set a listener for touch event
surface.setOnTouchListener(this);

// create the web view

webView = new WebView(this);
webView.setWebViewClient(new WebViewClient());
webView.setVisibility(View.GONE);
LayoutParams webViewParams = new LayoutParams(800,240); // this works
webViewParams.setMargins(0, 120, 800, 360);             // this does nothing...

// create a relative layout
RelativeLayout l = new RelativeLayout(this);

// add the surface
l.addView(surface);

// add the ad view at the bottom
AdView.LayoutParams adViewParams = new AdView.LayoutParams(
AdView.LayoutParams.WRAP_CONTENT,
AdView.LayoutParams.WRAP_CONTENT);

adViewParams.addRule(AdView.ALIGN_PARENT_BOTTOM);

l.addView(adView, adViewParams);

l.addView(webView, webViewParams);

setContentView(l);  

// load an ad
//loadAdMob(); 

後でwebviewの可視性を可視に設定したとき:

webView.loadUrl(url);
webView.setVisibility(View.VISIBLE);

正しい幅と高さで表示されますが、画面の一番上から始まります:(

誰でも助けることができますか?ありがとう。

4

1 に答える 1

0

わかりました、私はそれを得たと思います:

webView = new WebView(this);
webView.setWebViewClient(new WebViewClient());
RelativeLayout.LayoutParams webViewParams= new RelativeLayout.LayoutParams(800, 240);
webViewParams.addRule(RelativeLayout.CENTER_IN_PARENT);

RelativeLayout l = new RelativeLayout(this);
l.addView(surface);
l.addView(adView, adViewParams);
l.addView(webView, webViewParams);
setContentView(l); 

ここにクレジットが入ります

于 2013-07-08T02:32:27.750 に答える