Pregunta

HI,

¿Es posible compatible con el zoom de una vista web (similar al navegador por defecto) cuando se aprieta el usuario y mueve sus dedos más cerca / más lejos. Im usando 2.2 y enseñado esto sería posible mediante el ScaleGestureDetector. El problema es que me parece que no puede encontrar un método para establecer la escala. WebView.getScale () devuelve la escala actual que cambia a través zoomIn () y ZoomOut (), pero no puedo encontrar setScale () o una opción para configurar el zoom por defecto y dejar que el mango OS ella.

Andy

¿Fue útil?

Solución

Uso:

webview.getSettings().setBuiltInZoomControls(true);

para hacer pellizcar para hacer zoom y poner el valor por defecto de zoom in / out botones en la pantalla.

Otros consejos

Es necesario poner en práctica el onTouchEvent (MotionEvent) en su vista web.

A continuación, en ese caso, pase el MotionEvent a la ScaleGestureDetector para que pueda procesarlo, a continuación, llamar a la súper.

class ScalableWebView extends WebView implements ScaleGestureDetector.OnScaleGestureListener
{
    ScaleGestureDetector mScaleDetector = new ScaleGestureDetector(this, this);

    public boolean onTouchEvent(MotionEvent event)
    {
        if(mScaleDetector.onTouchEvent(event))
             return true;

        return super.onTouchEvent(event);
    }

    boolean onScaleBegin(ScaleGestureDetector detector) 
    {
     //handle scale event begin
    }

    boolean onScale(ScaleGestureDetector detector) 
    {
     //handle scale event
    }

    boolean onScaleEnd(ScaleGestureDetector detector) 
    {
     //handle scale event end
    }

}

Hay una setScale, intente lo siguiente:

webView.setInitialScale((int)(100 * webView.getScale());
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top