2013-04-09 18 views
8

Witam mam webview i chcę go dopasować do ekranu, dzięki czemu użytkownik nie musi przewijać w poziomie lub w pionieAndroid WebView zmieścić wszystkie treści na ekranie

Przeszukałem wcześniej, wiele sugerują następujący ale ogranicza jedynie szerokość, użytkownik nadal będzie musiał przewijać w pionie:

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

próbowałem inną metodę, za pomocą metody skalowania, ale to nie będzie działać ..... mam szerokość okna (1024 pikseli) a szerokość treści sieci również wynosiła 1024 piksele !! Więc skalowanie nie działa .... Czy istnieje jakaś metoda uzyskania poprawnej skali?

Albo ... czy jest jakaś inna droga? ... PODZIĘKOWANIA !!

// 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); 

Zaledwie kilka uwag:

skalować 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 

Aby uzyskać szerokość okna i wysokość:

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

check to linki: http://stackoverflow.com/a/9756084/1168654 i http://stackoverflow.com/questions/11922861/how-to-justify-text-on-a-textview- made-easy-android/11922862 # 11922862 i http://stackoverflow.com/questions/15894644/how-we-get-text-of-a-texview-to-bejust-dynamicznie/15894704#15894704 –

Odpowiedz

1

Aby uczynić WebView rozszerzyć na cały ekran , dodaj widok WWW w układzie xml działania i upewnij się, że ustawiłeś layout_width i layout_height do fill_parent. Oto prosty przykład:

<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

użyj następujących metod.

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