在WebView中加载gif而不是调整到WebView

时间:2018-03-04 17:52:54

标签: android android-layout webview

我正在尝试将gif加载到WebView,它正常工作,但问题是我看到了这个:

enter image description here

问题是我可以滚动,但我没有在WebView中看到.gif完整。

我的html是:

<html style="margin: 0;">
<body style="margin: 0;">
<img src="tuto1.gif" style="width: 40%; height: 70%" />
</body>
</html>

xml文件中的WebView

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="@dimen/activity_horizontal_margin">


    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <WebView
            android:id="@+id/webViewPager"
            android:layout_width="@dimen/_200sdp"
            android:layout_height="@dimen/_250sdp"
            android:layout_gravity="center"
            android:adjustViewBounds="true"
            android:scaleType="fitCenter" />
    </FrameLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:gravity="center"
        android:orientation="vertical"
        android:padding="@dimen/activity_horizontal_margin">

        <TextView
            android:id="@+id/section_label"
            style="@style/TextAppearance.AppCompat.Headline"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@android:color/white"
            tools:text="Page One" />

        <TextView
            style="@style/TextAppearance.AppCompat.Body1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/activity_horizontal_margin"
            android:id="@+id/tv_description"
            android:alpha="0.7"
            android:gravity="center"
            android:textColor="@android:color/white" />
    </LinearLayout>

</FrameLayout>

我正在显示以下html

WebView wv = rootView.findViewById(R.id.webViewPager);
wv.loadUrl("file:///android_asset/tuto1.html");
wv.setBackgroundColor(Color.TRANSPARENT);

注意:我的.gif是330 x 750

我的目标是什么?

我想在屏幕上的那个空间看到我的.gif文件,我不希望它可以滚动我希望显示完整的“网页”。

我也试过了Glide,但是当我把.gif放到ImageView时,它的滞后程度很高,这就是我使用webView的原因。

4 个答案:

答案 0 :(得分:1)

我相信你应该尝试使用这个https://github.com/koral--/android-gif-drawable,而不是浪费时间玩臭名昭着的Android容易出错的网页浏览。

答案 1 :(得分:0)

我相信你的问题可以用css解决 请检查此answer

将此样式用于Body代码:

overflow: hidden;

答案 2 :(得分:0)

试试这个:

WebSettings settings = webView.getSettings();
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);

https://developer.android.com/guide/webapps/targeting.html#Metadata

答案 3 :(得分:0)

 <html>
    <body style="padding:0px;margin:0px;">
      <img src="tuto1.gif" style="width: 100%; height: 100%" />
   </body>
</html>


 <WebView
            android:id="@+id/webViewDetail"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

</WebView>




        webViewDetail.clearCache(true);
        webViewDetail.clearHistory();
        webViewDetail.clearFormData();


        WebSettings webSettings = webViewDetail.getSettings();
        // To enable java script on page.
        webSettings.setJavaScriptEnabled(true);
        webSettings.setAllowContentAccess(true);
        webSettings.setAllowFileAccess(true);
        webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
        webSettings.setDomStorageEnabled(true);
        //To always load page from web server, not to use resources from cache.
        webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);

        String absoulteFileUrlPath = "file://" + singleFile.getAbsolutePath();
        webViewDetail.loadUrl(absoulteFileUrlPath);