Na Androidzie używam widoku internetowego do wyświetlania wykresu zaprojektowanego przez flotę interfejsu API.Wyłączanie podwójnego kliknięcia Zoom/Unzoom na widoku internetowym
Używam tego kodu:
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");
Na wykresie wyświetlany jest poprawnie i wypełnia całą webview nawet jeśli szerokość i wysokość nie są takie same na początku (dzięki setLoadWithOverviewMode (prawda) i (setUseWideViewPort prawdziwe)).
Użytkownik może jednak nadal powiększać i pomniejszać wykres, dwukrotnie dotykając go.
Chcę, aby zapobiec tej akcji, starałem się umieścić mój webview na clickable = false, focusable = false i focusableintouchmode = false, ale to nie działa.
Próbowałem to również:
webview.getSettings().setBuiltInZoomControls(false);
Ale to nie działa. Czy masz jakąś wskazówkę?
http://stackoverflow.com/questions/5125851/enable-disable-zoom-in-android- webview –
Proszę spróbować na moją odpowiedź z podobnego pytania: http://stackoverflow.com/a/21472048/510577 –