サーフェス (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);
正しい幅と高さで表示されますが、画面の一番上から始まります:(
誰でも助けることができますか?ありがとう。