2012-01-29 13 views
24

Domanda semplice.Contenuto di pagine web all'interno di una visualizzazione Web (Android)

Sto cercando di estendere il contenuto di una visualizzazione Web in modo che l'intera pagina Web all'interno sia visibile. non c'è scorrimento. Ho esaminato i documenti ma non riesco a trovare alcun metodo a parte i controlli di zoom e setinitialscale.

Il problema con setinitialscale in questo caso è che funziona in modo diverso per siti diversi.

Esempio: 1: wikipedia verrà caricato come previsto con lo zoom abbastanza lontano. 2: Google tuttavia mostrerà solo il centro della pagina.

Heres il frammento di codice che ho

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

Questo sembra essere un'alternativa a quello che sto cercando di fare, ma non posso farlo per diminuire abbastanza lontano.

+0

è ora possibile adattare la pagina in Webview – Ravi

risposta

95

Così le persone possono utilizzare questo come un tutorial in futuro.

Ci sono molti modi per gestire gli zoom nelle pagine di Android e di fitting. A volte può essere piuttosto irritante e alcuni metodi funzionano meglio di altri.

Per molte persone, Basta usare questo:

WebView x; 

x.setInitialScale(1); 

Questo è lo zoom furtheset possibile. Ma per alcuni siti sembra semplicemente BRUTTO.

Questa era la seconda versione che ho trovato

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

Quello è un bel all rounder che sembra per diminuire appena fuori abbastanza lontano per molto, ma ancora non quello che cercavo.

E ora ecco la soluzione finale che ho.

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

Fondamentalmente ciò che questi fanno è risolta in un'altra domanda come questa.

setLoadWithOverviewMode(true) 

Carica il WebView completamente ingrandito

setUseWideViewPort(true) 

Rende il Webview hanno una vista normale (come ad esempio un normale browser desktop), mentre quando falsa la WebView avrà una finestra costretto ad esso è di possedere dimensioni (quindi se la WebView è 50px 50px * la finestra sarà la stessa dimensione)

+0

Se qualcuno riesce a formulare una parola migliore, la accetto come quella corretta. Sono contrario a segnare le mie risposte, ma darò una possibilità per gli altri – OVERTONE

+2

funziona per me. Grazie !! – iRunner

+0

+1 la migliore spiegazione di queste impostazioni trovate finora su questo sito –

10

ho provato tutti i metodi di cui sopra, ma nel mio caso non ha funzionato fino a quando ho scoperto:

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

rimuovere questa riga nel file html o semplicemente cambiare utente-scalabile = sì, e tutto andrà bene. Mi ci è voluto quasi un giorno per scoprire questa pazza linea.

+0

Dove posso modificare o aggiungere questo? –

+0

È il metatag nel file html. È possibile aprire il file html e modificarlo direttamente, nella parte dell'intestazione. –

+0

risposta impressionante. mi ha salvato. ; - * – Sarasranglt

Problemi correlati