AndroidのWebViewに埋め込まれたYouTubeクリップを、640x360の大きさのウェブビューのサイズで、タブレットの画面の中央に表示しようとしています。しかし私は、YouTubeのクリップを遮断しているように見えると白の背景は以下のスクリーンショットのように表示されます、これを行うことができた:AndroidのWebViewでYoutubeクリップを一元的に整列する際の問題
ここでは、Javaコードです:
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class VideoWebViewActivity extends Activity {
private static final int VIDEO_WIDTH = 640;
private static final int VIDEO_HEIGHT = 360;
private WebView webView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
webView = (WebView) findViewById(R.id.weblink_webview);
webView.getSettings().setPluginsEnabled(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebChromeClient(new WebChromeClient());
webView.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(final WebView view, final int errorCode, final String description, final String failingUrl) {
}
@Override
public boolean shouldOverrideUrlLoading(final WebView view, final String url) {
view.loadUrl(url);
return true;
}
@Override
public void onLoadResource(WebView view, String url) {
super.onLoadResource(view, url);
}
@Override
public void onPageFinished(WebView view, String url) {
}
});
String youtubeUrl = "http://www.youtube.com/embed/O1N2rENXq_Y";
String embedCode = "<!DOCTYPE html><html><head>" + " <style type=\"text/css\"> body { background-color: transparent; padding:0; margin:0; }</style>"
+ "</head><body><div align=\"center\"><iframe align=\"middle\" width=\"" + (VIDEO_WIDTH) + "\" height=\""
+ (VIDEO_HEIGHT) + "\" src=\"" + youtubeUrl
+ "\" frameborder=\"0\" allowfullscreen></iframe></div></body></html>";
webView.loadData(embedCode, "text/html", null);
}
@Override
public void onDestroy() {
if (webView != null) {
webView.destroy();
}
super.onDestroy();
}
}
しかし上、このことについて奇妙なこと、アンドロイド3.2 7インチタブレットにそれが正常に動作していることである:
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/weblink"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:visibility="visible" >
<WebView
android:id="@+id/weblink_webview"
android:layout_width="640dip"
android:layout_height="wrap_content"
/>
</RelativeLayout>
編集:
そして、ここではレイアウトxmlです4.0.3(ICS)の10インチタブレットはスクリーンショットのように見えます。ハニカム3.1の10インチタブレットには同じ問題があります。これは私に、この振る舞いの原因となるWebビュー自体のなかに何らかの設定や問題があると信じています。
編集2:問題を解決するためにさまざまなアイデアを試していましたが、クリップの右側の白い矩形は、ウェブビューに追加する余白の量と直接リンクしているようです。たとえば、ビューを中央に揃えて100dpiのマージンを追加すると、クリップの右側に約100dpiの白い帯が表示されます。
どのような提案も歓迎されます。
おかげで、
ミハイ
設定を試しましたか?layout_width = "wrap_content"? –
うん、私はそれを試みたが、画面の端に達するクリップの左右に2つの白い水平の長方形が得られ、私はそれを望んでいない。 – r1k0