Enable Zoom Option In WebView Android

15,963

Solution 1

Check if you don't have a ScrollView wrapping your Webview.

It seems ScrollView gets in the way of the pinch gesture.

To fix it, just take your Webview outside the ScrollView nd then use the same line:

webSettings.setBuiltInZoomControls(true);
webSettings.setSupportZoom(true);

Solution 2

For Cordova 5

This has changed slightly for Cordova 5.1 (I think it changed with 5.0 actually).
To enable Android zooming for Cordova 5, add these lines :

import android.webkit.WebView;
import android.webkit.WebSettings; 
import android.webkit.WebSettings.ZoomDensity;

and these

        WebView webView = (WebView) appView.getEngine().getView();
        WebSettings settings = webView.getSettings();
        settings.setBuiltInZoomControls(true);
        settings.setSupportZoom(true);

A full sample of your src/com/YOURPACKAGE.java file:

package com.YOURPACKAGE;

import android.os.Bundle;
import org.apache.cordova.*;

import android.webkit.WebView;
import android.webkit.WebSettings; 
import android.webkit.WebSettings.ZoomDensity;


public class MainActivity extends CordovaActivity
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        // Set by <content src="index.html" /> in config.xml
        loadUrl(launchUrl);

        WebView webView = (WebView) appView.getEngine().getView();
        WebSettings settings = webView.getSettings();
        settings.setBuiltInZoomControls(true);
        settings.setSupportZoom(true);
        //settings.setDefaultZoom(ZoomDensity.FAR);
    }
}
Share:
15,963

Related videos on Youtube

Manu
Author by

Manu

Updated on September 15, 2022

Comments

  • Manu
    Manu over 1 year

    I am developing the application using PhoneGap. I cannot enable built in zoom in/out in the webview.

    I used Following code in onCreate Function

    WebView web = (WebView) findViewById(R.id.webview);
    web.getSettings().setBuiltInZoomControls(true);
    

    But it did not work.

    And The Activity class is

    activity_main.xml

    <WebView  xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/webview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    /> 
    
  • Manu
    Manu over 10 years
    my activity_main.xml is having only webView. The above code is the entire activity_main.xml
  • SweetWisher ツ
    SweetWisher ツ over 10 years
    Then this line should wrk webView.getSettings().setBuiltInZoomControls(true);
  • Manu
    Manu over 10 years
    am getting web page with scrolling in horizontal and vertical. using above line still not enable zoom
  • Manu
    Manu over 10 years
    the zooming is now working. When i changed the webview to CordovaWebView the zooming is working.
  • SweetWisher ツ
    SweetWisher ツ over 9 years
    If any issue, you can ask here
  • Anthony De Souza
    Anthony De Souza almost 9 years
    Worked for me. Also a tip for those who want the pinch zoom but without the zoom icons displayed: webSettings.setDisplayZoomControls(false);