Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Enable Zoom Option In WebView Android

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"
/> 
like image 599
Manu Avatar asked Nov 19 '13 10:11

Manu


2 Answers

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);
like image 89
SweetWisher ツ Avatar answered Oct 09 '22 08:10

SweetWisher ツ


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);
    }
}
like image 42
kris Avatar answered Oct 09 '22 09:10

kris