2012-01-26 18 views
10

En Android, uso una vista web para mostrar un gráfico diseñado por API flot.Desactivar Doble Tap Zoom/Unzoom en una vista web

Estoy usando este código:

super.onCreate(savedInstanceState); 
    this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    setContentView(R.layout.graphique); 

    // Get a reference to the declared WebView holder 
    WebView webview = (WebView) this.findViewById(R.id.webView1); 

    // Get the settings 
    WebSettings webSettings = webview.getSettings(); 

    // Enable Javascript for interaction 
    webSettings.setJavaScriptEnabled(true); 

    // Make the zoom controls visible 
    //webSettings.setBuiltInZoomControls(true); 

    // Allow for touching selecting/deselecting data series 
    webview.requestFocusFromTouch(); 

    // Set the client 
    webview.setWebViewClient(new WebViewClient()); 
    webview.setWebChromeClient(new WebChromeClient()); 
    webview.setBackgroundColor(0); 

    webview.getSettings().setLoadWithOverviewMode(true); 
    webview.getSettings().setUseWideViewPort(true); 
    // Load the URL 
    webview.loadUrl("file:///android_asset/graph.html"); 

En el gráfico se muestra correctamente y llena toda la vista web, incluso si la anchura y la altura no son los mismos en el arranque (gracias a setLoadWithOverviewMode (verdadero) y setUseWideViewPort (cierto)).

Pero el usuario todavía puede hacer zoom y descomprimir el gráfico tocando dos veces sobre él.

Quiero evitar esta acción, traté de poner mi vista web a hacer clic = falso, enfocable = falso y focusableintouchmode = falso pero no funciona.

He intentado esto también:

webview.getSettings().setBuiltInZoomControls(false); 

Pero no funciona. Tienes alguna pista ?

+0

http://stackoverflow.com/questions/5125851/enable-disable-zoom-in-android- webview –

+0

Por favor, pruebe mi respuesta a partir de una pregunta similar: http://stackoverflow.com/a/21472048/510577 –

Respuesta

24

intenta establecer

webView.getSettings().setUseWideViewPort(false); 

y hacer frente a la escala manualmente para ajustarse al ancho ..

+0

Creo que esto funciona, pero ¿cómo escalar manualmente el ancho? Mi ancho y alto de gráfico no se pueden definir, ¿puedo escalarlo desde mi código directamente? – Thordax

+1

intente esto: http://stackoverflow.com/a/3916700/519955 –

+0

¡Muchas gracias! Exactamente lo que necesitaba. – Thordax

Cuestiones relacionadas