2012-01-29 41 views
24

Câu hỏi đơn giản.Nội dung trang web phù hợp bên trong một chế độ xem web (Android)

Tôi đang cố gắng kéo dài nội dung của chế độ xem web để toàn bộ trang web bên trong hiển thị. tức là không cuộn. Tôi đã xem qua các tài liệu nhưng không thể tìm thấy bất kỳ phương thức nào từ các điều khiển thu phóng và setinitialscale.

Vấn đề với setinitialscale trong trường hợp này là nó hoạt động khác nhau cho các trang web khác nhau.

Ví dụ: 1: wikipedia sẽ tải như mong đợi với thu phóng đủ xa. 2: Tuy nhiên, Google sẽ chỉ hiển thị trung tâm của trang.

Heres đoạn mã đoạn code tôi có

test1 = (WebView) findViewById(R.id.webview_test_1); 
    test2 = (WebView) findViewById(R.id.webview_test_2); 
    test3 = (WebView) findViewById(R.id.webview_test_3); 

    test1.getSettings().setJavaScriptEnabled(true); 
    test2.getSettings().setJavaScriptEnabled(true); 
    test3.getSettings().setJavaScriptEnabled(true); 

    test1.setInitialScale(12); 
    test2.setInitialScale(12); 
    test3.setInitialScale(12); 

    test1.loadUrl("http://developer.android.com/resources/tutorials/views/hello-tablelayout.html"); 
    test2.loadUrl("http://www.wikipedia.org/"); 
    test3.loadUrl("http://www.google.com"); 

test1.getSettings().setDefaultZoom(ZoomDensity.FAR); 

Đây dường như là một thay thế cho những gì tôi đang cố gắng để làm nhưng tôi không thể có được nó để phóng to đủ xa.

+0

bây giờ bạn có thể phù hợp với trang trong chế độ xem web – Ravi

Trả lời

95

Vì vậy, mọi người có thể sử dụng điều này làm hướng dẫn trong tương lai.

Có nhiều cách để xử lý thu phóng trong các trang android và phù hợp. Nó có thể được khá temperamental ở lần và một số phương pháp làm việc tốt hơn so với những người khác.

Đối với hầu hết mọi người, Chỉ cần sử dụng này:

WebView x; 

x.setInitialScale(1); 

Đây là zoom furtheset càng tốt. Nhưng đối với một số trang web nó chỉ trông tinh khiết UGLY.

Đây là phiên bản thứ hai tôi thấy

test1.getSettings().setDefaultZoom(ZoomDensity.FAR); 

Thats đẹp tròn tất cả hơn dường như chỉ phóng to ra đủ xa cho rất nhiều nhưng vẫn không phải là điều tôi đang tìm kiếm.

Và bây giờ, cô ấy là giải pháp cuối cùng mà tôi có.

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

Về cơ bản, những việc này được trả lời trong một câu hỏi khác như thế này.

setLoadWithOverviewMode(true) 

Nạp WebView hoàn toàn thu nhỏ

setUseWideViewPort(true) 

Làm WebView có chế độ xem bình thường (chẳng hạn như một trình duyệt máy tính để bàn bình thường), trong khi khi sai các webview sẽ có một khung nhìn bị hạn chế để kích thước riêng của nó (vì vậy nếu webview là 50px 50px * viewport sẽ có cùng kích thước)

+0

Nếu bất kỳ ai cũng có thể viết tốt hơn thì tôi sẽ chấp nhận trang đó là đúng. Tôi chống lại đánh dấu câu trả lời của riêng tôi nhưng tôi sẽ cho một cơ hội cho những người khác – OVERTONE

+2

làm việc cho tôi. Cảm ơn !! – iRunner

+0

+1 giải thích tốt nhất về các cài đặt này được tìm thấy cho đến nay trên trang web này –

10

tôi đã thử tất cả các phương pháp trên nhưng trong trường hợp của tôi không có gì làm việc cho đến khi tôi phát hiện ra:

<meta name="viewport" content="user-scalable=no"/> 

xóa dòng này trong tệp html hoặc chỉ cần thay đổi người dùng có thể mở rộng = có và tất cả mọi thứ sẽ ổn. Mất gần một ngày để tìm ra đường điên rồ này.

+0

Tôi có thể thay đổi hoặc thêm điều này ở đâu? –

+0

Đó là thẻ meta trong tệp html. Bạn có thể mở tệp html đó và chỉnh sửa trực tiếp, trong phần tiêu đề. –

+0

câu trả lời tuyệt vời. cứu tôi. ; - * – Sarasranglt

Các vấn đề liên quan