2012-05-26 16 views
10

¿Es posible quitar los botones de zoom enter image description here? Se muestra cuando hago zoom en WebView. Necesito control de zoom sin estos botones. Estoy usando Android 2.3.¿Cómo eliminar los botones de zoom en la vista web de Android?

Solía ​​continuación Código,

WebView webview = (WebView) findViewById(R.id.webview); 
webview.getSettings().setBuiltInZoomControls(false); 
webview.getSettings().setJavaScriptEnabled(true); 
FrameLayout mContentView = (FrameLayout) getWindow(). 
     getDecorView().findViewById(android.R.id.content); 
final View zoom = webview.getZoomControls(); 
mContentView.addView(zoom, ZOOM_PARAMS); 
zoom.setVisibility(View.GONE); 
+0

podemos discutir aquí http://chat.stackoverflow.com/rooms/10629/agarwal –

+0

Sí, claro. Me uniré. – bharath

+0

@bharath me pueden ayudar fr [esto] (http://stackoverflow.com/questions/11777116/enable-zoom-for-all-pages-of-an-android-application) –

Respuesta

5

Finalmente, mi respuesta es: No es posible ocultar/eliminar estos de botones en WebView en Android 2.3.

21
getSettings().setBuiltInZoomControls(false); 

utilizar la línea de código anterior para eliminar los botones de zoom.

El API> = 11, puede utilizar:

webView.getSettings().setBuiltInZoomControls(true); 
webView.getSettings().setDisplayZoomControls(false); 

Actualizado ::: Si quieres tener zoom in/out y sin controles de zoom a continuación, utilizar el código de abajo (copiado de here)

public class Main extends Activity { 
  private WebView myWebView; 
  private static final FrameLayout.LayoutParams ZOOM_PARAMS = 
new FrameLayout.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT, 
ViewGroup.LayoutParams.WRAP_CONTENT, 
Gravity.BOTTOM); 

  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.webview); 
    myWebView = (WebView)findViewById(R.id.webView); 

    FrameLayout mContentView = (FrameLayout) getWindow(). 
    getDecorView().findViewById(android.R.id.content); 
    final View zoom = myWebView.getZoomControls(); 
    mContentView.addView(zoom, ZOOM_PARAMS); 
    zoom.setVisibility(View.GONE); 

    myWebView.loadUrl("http://www.almondmendoza.com"); 
  } 
} 
3

Siga este código. Esto te ayudará.

Main.java

WebView wv = (WebView) findViewById(R.id.webview1) ; 
    WebSettings webSettings = wv.getSettings(); 
    webSettings.setBuiltInZoomControls(false); 
    wv.loadUrl(url); 
+0

En el mejor de los casos esto habilitaría * * los controles de zoom. – CommonsWare

+0

cambiar el valor booleano a falso –

0

Aquí es una solución:

if (ev.getAction() == MotionEvent.ACTION_DOWN || 
     ev.getAction() == MotionEvent.ACTION_POINTER_DOWN || 
     ev.getAction() == MotionEvent.ACTION_POINTER_1_DOWN || 
     ev.getAction() == MotionEvent.ACTION_POINTER_2_DOWN || 
     ev.getAction() == MotionEvent.ACTION_POINTER_3_DOWN) { 
    if (multiTouchZoom && !buttonsZoom) { 
     if (ev.getPointerCount() > 1) { 
      getSettings().setBuiltInZoomControls(true); 
      getSettings().setSupportZoom(true); 
     } else { 
      getSettings().setBuiltInZoomControls(false); 
      getSettings().setSupportZoom(false); 
     } 
    } 
} 

if (!multiTouchZoom && buttonsZoom) { 
    if (getPointerCount(ev) > 1) { 
     return true; 
    } 
} 

En su caso multiTouchZoom es verdadera y buttonsZoom es falso.

Lo encontré aquí enable/disable zoom in Android WebView y me funcionó.

+0

¿qué son multiTouchZoom y botones variables de zoom? – jayellos

+0

@jayellos reemplázalos con tus valores booleanos. Si desea un zoom multitouch, reemplace 'multiTouchZoom' con verdadero. Si necesita mostrar los botones de zoom, reemplace 'buttonsZoom' con verdadero. De lo contrario, reemplace con falso. –

+0

esta solución funcionará http://stackoverflow.com/a/11901948/998732 – jayellos

7

Cambiar esto en su AndroidManifest:

android:minSdkVersion="8" 

a esto:

android:minSdkVersion="11" 

de utilizar esto en su web Ver configuración:

getSettings().setBuiltInZoomControls(true); 
    getSettings().setDisplayZoomControls(false); 
1

Sólo tiene que añadir esta línea:

webSettings.setDisplayZoomControls(false); 
+0

El tipo preguntó sobre Android 2.3, esto no es posible con 2.3 – VSG24

1

los botones de zoom se pueden eliminar implementando su propia vista web personalizada y usando la reflexión para obtener los controles de zoom integrados y hacerlos invisibles para API por debajo de 11 (Honeycomb). El código es como funciona para todas las API hasta el turrón android;

public class CustomWebView extends WebView{ 

    private ZoomButtonsController zoom_controll = null; 

    public CustomWebView(Context context) { 
     this(context, null); 
    } 

    public CustomWebView(Context context, AttributeSet attrs) { 
     this(context, attrs, android.R.attr.webViewStyle); 
    } 

    public CustomWebView(Context context, AttributeSet attrs, int defStyleAttr) { 
     super(context, attrs, defStyleAttr); 
     initWebSettings(); 
    } 

    @SuppressLint("NewApi") 
    private void initWebSettings() { 
     WebSettings webSettings = getSettings(); 

     webSettings.setSupportZoom(true); 
     webSettings.setBuiltInZoomControls(true); 
     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
      webSettings.setAllowContentAccess(true); 
      webSettings.setDisplayZoomControls(false); 

     } else { 
      try { 
       Class webview = Class.forName("android.webkit.WebView"); 
       Method method = webview.getMethod("getZoomButtonsController"); 
       zoom_controll = (ZoomButtonsController) method.invoke(this, null); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 
    } 


    @Override 
    public boolean onTouchEvent(MotionEvent event) { 
     if(zoom_controll != null) 
      zoom_controll.getZoomControls().setVisibility(View.GONE); 
     return super.onTouchEvent(event); 
    } 

} 
1

Si desea desactivar los controles de zoom sólo use este: webView.getSettings().setDisplayZoomControls(false);

Cuestiones relacionadas