2013-04-09 14 views
8

Xin chào Tôi có một webview và tôi muốn nó phù hợp với màn hình, sao cho người dùng không phải cuộn theo chiều ngang hoặc chiều dọcAndroid webview phù hợp với tất cả nội dung để sàng lọc

Tôi đã tìm kiếm trước đây, nhiều đề xuất sau đây nó chỉ giới hạn chiều rộng, người dùng sẽ vẫn phải cuộn theo chiều dọc:

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

Tôi đã thử phương pháp khác, sử dụng phương pháp chia tỷ lệ, nhưng nó sẽ không hoạt động ..... Tôi có chiều rộng cửa sổ (1024 pixel) và chiều rộng nội dung web cũng là 1024 pixel !! Vì vậy, quy mô không hoạt động .... Có phương pháp nào để có được thang đo chính xác không?

Hoặc .... có cách nào khác không? .... CẢM ƠN !!

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

Chỉ cần một số lưu ý:

Để mở rộng quy mô các 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 

Để có được chiều rộng cửa sổ và height:

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

kiểm tra liên kết này: http://stackoverflow.com/a/9756084/1168654 và http://stackoverflow.com/questions/11922861/how-to-justify-text-on-a-textview- made-easy-android/11922862 # 11922862 và http://stackoverflow.com/questions/15894644/how-we-get-the-text-of-a-texview-to-be-justified-dynamically/15894704#15894704 –

Trả lời

1

Để thực hiện webview mở rộng ra toàn bộ màn hình , thêm chế độ xem web trong bố cục hoạt động của bạn xml và đảm bảo bạn đặt layout_widthlayout_height đến fill_parent. Dưới đây là ví dụ đơn giản:

<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

sử dụng các phương pháp sau đây.

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