gpt4 book ai didi

android - 在 Android WebView 中集中对齐 Youtube 剪辑的问题

转载 作者:太空狗 更新时间:2023-10-29 15:18:22 25 4
gpt4 key购买 nike

我正在尝试在 Android 的 WebView 中显示嵌入在平板电脑屏幕中央的 YouTube 剪辑,其中 Web View 的尺寸最大为 640x360 dip。我已经设法做到了这一点,但是 YouTube 剪辑似乎被切断了,并且显示了白色背景,如下面的屏幕截图所示:

screenshot

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();
}
}

这是布局 xml:

<?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>

编辑:最奇怪的是,在装有 Android 3.2 的 7 英寸平板电脑上它工作正常,但是在装有 4.0.3 (ICS) 的 10 英寸平板电脑上它看起来像在屏幕截图中。同样的问题在带有 Honeycomb 3.1 的 10 英寸平板电脑。这让我相信 WebView 本身存在某种设置/问题导致了这种行为。

编辑 2:在尝试各种想法来解决问题时,我们注意到剪辑右侧的白色矩形的大小似乎与您添加到 Web View 的左边距量直接相关。例如,如果我们放弃居中 View 并添加 100dip 边距,我们将在剪辑右侧获得大约 100dip 宽的白色 strip 。

欢迎提出任何建议。

谢谢,

迷海

最佳答案

这篇文章有点旧,但如果您仍在寻找解决方案:

ICS 上的 Webview 有很多问题,您的问题与带有左边距的 WebView 中的谷歌地图相同。

为了解决这个问题,在 list 中,我改变了

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" />

通过

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="11" />

这样可以不激活ICS的新特性,解决问题

干杯

关于android - 在 Android WebView 中集中对齐 Youtube 剪辑的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10433865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com