1

I'm using the following method with HTML to load a local image into webview

   void loadingImage(WebView mWebView){
        mWebView.getSettings().setSupportZoom(false);
        mWebView.getSettings().setDisplayZoomControls(false);
        String mHead="<html><head><style type='text/css'>body{margin:auto auto;text-align:center;} img{width:100%25;} </style></head>";
        String mBody = "<body> <img src='my_image.jpg'/> </body></html>";
        mWebView.loadDataWithBaseURL("file:///android_res/drawable/", mHead + mBody, "text/html", "UTF-8", null);
        mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
   }

And the XML part

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

But using this method I'm getting an extra white space at the bottom after scrolling down if the phone's orientation is portrait.

The image's width 1,5 times bigger than it's height, so as I understand WebView loads the image and by increasing height makes the content square(width and height equal) but increasing it just by adding an extra white space to the height.

But if phone's orientation is landscape, it works without any problem, without adding any white space.

So please help me to understand what is the actual reason of the problem and how to solve it. Thank you in advance.

JHets15
  • 11
  • 3

2 Answers2

2

make your WebView height wrap_content:

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

It works for me even in portrait mode :)

Ali Sherafat
  • 3,506
  • 2
  • 38
  • 51
0

Try this.

 <WebView
        android:id="@+id/web_view"
        android:scrollbarStyle = "insideOverlay"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
Dipali Shah
  • 3,742
  • 32
  • 47