【问题标题】:Load html URL (Flash Video) to specific size of Webview Android将 html URL(Flash 视频)加载到特定大小的 Webview Android
【发布时间】:2014-01-18 07:59:28
【问题描述】:

我正在尝试将包含 Flash 视频的 html url 加载到特定大小的 webview。我的意思是我有一个 LinearLayout 会随着不同的分辨率屏幕而变化。该布局包含具有“MATCH_PARENT”宽度和高度的 Webview。但它无法加载适合该布局的 url。

我的 XML 布局如下图所示:

我的代码:

mWebView = (WebView) findViewById(R.id.id_webview);

    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setAllowFileAccess(true);
    mWebView.getSettings().setPluginState(PluginState.ON);
    mWebView.getSettings().setLoadWithOverviewMode(true);
    mWebView.getSettings().setUseWideViewPort(true);
    mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
    mWebView.setScrollbarFadingEnabled(false);
    mWebView.setWebViewClient(new WebViewClient(){

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            // TODO Auto-generated method stub
            return super.shouldOverrideUrlLoading(view, url);
        }
    });

   mWebView.loadUrl("http://XXXXXXXXXX/XX/XX.html");

所以这里无法正确加载适合这个黄色部分布局的 webview。有时它正在加载黄色部分的一半,有时是黄色部分的四分之一。所以它的变化取决于屏幕的不同分辨率。但我想加载该 webview 完全适合该布局,即使该布局变化与否。

更新:

我能够完美地加载整个屏幕宽度的 Flash 内容。因此,如果我删除 Layout 的红色部分,我可以通过 webview 完美地看到 Flash。但是,如果我在左侧添加一些东西,flash 会从右边距削减相同百分比的左侧布局。所以 webview 能够加载整个页面,但不能加载整个页面的整个 Flash 包含。

如果我在这里做错了什么,请让我接受你的帮助或最好的建议。

【问题讨论】:

  • 面临同样的问题。找到解决方案了吗?
  • @user1444172 : 不,几天后,我发现 4.1 以上的版本有问题,因为 android 不再支持 webview 中的 flash,他们支持 HTML5。所以如果可能的话,把它转换成 HTML5。

标签: android webview android-webview android-linearlayout


【解决方案1】:

解决这个问题需要修改 HTML 和 CSS,而不是 android 布局代码。 WebView 就像一个网络浏览器。因此,我们可以将您的问题改写为:如何设计网页以使视频填满整个页面?

在 Flash 面板的参数正确之前,您将不得不处理 HTML 页面。一个好的起点:这是使图像填充 WebView 所需的 css

.video
{
  width: 100%;
}

example that uses the width attribute to make a full width image

【讨论】:

  • 您好兄弟,感谢您的回复。实际上我知道这个解决方案,但我无法访问那个 HTML 或 CSS。所以我只想从 android 端实现这个!
  • 即使我要用桌面上的任何浏览器打开那个 URL,我也能看到它的全视图。所以它可能已经被定义为 100% 宽度
  • 我又检查了一遍。它看起来像全尺寸的不同分辨率桌面的所有浏览器。所以我认为你所说的已经存在。我们可以这样说吗?我对吗?
【解决方案2】:

你试过WebView.setInitialScale 吗?您可能还需要为不同分辨率的设备计算具体值(用作输入参数)。

实际上 WebView 的宽度是由页面内容本身决定的,所以MATCH_PARENT 帮助不大。因此,更改初始比例类似于更改缩放级别,这样网页“看起来”就适合其父布局。

【讨论】:

  • 1.还请查看您加载到 WebView 的 URL 是否是移动版本,我的意思是您的意思是该页面是否包含 viewport 元数据,其中包含 width=device-width 等属性。这就是为什么您的页面或 Flash 视频始终具有固定宽度(= 设备宽度)的原因。 2. 你可能想阅读这部分Specifying Viewport Properties 看看它是否有帮助。
  • 是的,我也尝试删除该标签。它没有帮助。您可以尝试从您这边创建示例项目吗?我可以给你 Flash URL。
猜你喜欢
  • 2011-07-19
  • 1970-01-01
  • 2012-03-19
  • 2017-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多