2013-04-09 13 views
8

Ciao ho un WebView e voglio che si adatti allo schermo, in modo tale che l'utente non ha bisogno di scorrere orizzontalmente o verticalmenteAndroid WebView bene per tutti i contenuti per lo screening

Ho cercato prima, molti suggeriscono le seguenti, ma limita solo la larghezza, l'utente dovrà ancora scorrere in verticale:

engine = (WebView) (findViewById(R.id.webView1)); 
engine.loadUrl(www.example.com); 
engine.getSettings().setLoadWithOverviewMode(true); 
engine.getSettings().setUseWideViewPort(true); 

ho provato un altro metodo, utilizzando il metodo di ridimensionamento, ma non funziona ..... ho avuto la larghezza della finestra (1024 pixel) e la larghezza del contenuto web era anche di 1024 pixel !! Quindi il ridimensionamento non ha funzionato .... Esiste un metodo per ottenere la scala corretta?

Oppure .... c'è un altro modo? .... GRAZIE !!

// get the window width and height 
    Point outSize = new Point(); 
    getWindowManager().getDefaultDisplay().getSize(outSize); 
    width = outSize.x; 
    height = outSize.y; 
    Log.i("Menuboard", "width: " + Integer.toString(width) + ", height: " 
      + Integer.toString(height)); 

WebViewClient client = new WebViewClient() { 

     public void onPageFinished(WebView view, String url) { 
      int x = engine.getWidth(); 
      int y = engine.getHeight(); 

      Log.i("Menuboard", "web width: " + Integer.toString(x) 
        + ", height: " + Integer.toString(y)); 

      int scale1 = width * 100/x; 
      int scale2 = height * 100/y; 

      Log.i("Menuboard", "Scale1: " + Integer.toString(scale1) 
        + ", Scale2: " + Integer.toString(scale2)); 

      if (scale1 < scale2) { 
       engine.setInitialScale(scale1); 
       Log.i("Menuboard", "scale1"); 
      } else if (scale1 > scale2) { 
       engine.setInitialScale(scale2); 
       Log.i("Menuboard", "scale2: " + Integer.toString(scale2)); 
      } 
     } 
    }; 

    engine = (WebView) (findViewById(R.id.webView1)); 
    engine.loadUrl(string); 
    engine.getSettings().setBuiltInZoomControls(true); 
    engine.setPadding(0, 0, 0, 0); 
      engine.setWebViewClient(client); 

Solo alcune note:

per scalare il WebView:

engine = (WebView) (findViewById(R.id.webView1)); 
engine.loadUrl(www.example.com); 
engine.getSettings().setBuiltInZoomControls(true); 
engine.setPadding(0, 0, 0, 0); 
engine.setInitialScale(50); // 0 - 100 where 100 is full scale 

Per ottenere larghezza della finestra e altezza:

Point outSize = new Point(); 
getWindowManager().getDefaultDisplay().getSize(outSize); 
width = outSize.x; 
height = outSize.y; 
+0

controllo questo link: http://stackoverflow.com/a/9756084/1168654 e http://stackoverflow.com/questions/11922861/how-to-justify-text-on-a-textview- made-easy-android/11922862 # 11922862 e http://stackoverflow.com/questions/15894644/how-we-get-the-text-of-a-texview-to-be-justified-dynamically/15894704#15894704 –

risposta

1

Per rendere il WebView espandono per tutto lo schermo , aggiungi la webview nel tuo layout di attività xml e assicurati di impostare layout_width eDaa fill_parent. Ecco un semplice esempio:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <WebView 
     android:id="@+id/webview" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"/> 
    </LinearLayout> 
5

utilizzare i seguenti metodi.

webview.getSettings().setUseWideViewPort(true); 
webview.getSettings().setLoadWithOverviewMode(true);