Autore Topic: Visualizzare una WebView proporzionata alle dimensioni del display  (Letto 744 volte)

Offline giasco

  • Nuovo arrivato
  • *
  • Post: 2
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung S2
  • Sistema operativo:
    Ubuntu
Ciao a tutti,
sono nuovo del forum ed ho deciso solo da poco di cimentarmi nella programmazione di app per dispositivi mobile (ovviamente rigorosamente assolutamente :-) android!) e spero in questo posto di aiutare ed essere aiutato nell'affrontare tutte le problematiche che ci si presenteranno.
Detto ciò vi faccio la mia prima domanda:
ho appena realizzato una piccola app ("didattica" per me ovviamente) nella quale alla fine si visualizza una WebView in un layout con orientamento forzato in orizzontale.

Non riesco però ad ottimizzare la visualizzazione dei contenuti in porzione alla larghezza dello schermo.... su tablet si vede benissimo ma sullo smartphone deve scrollare in orizzontale oltre che (ovviamente) in verticale.
Come risolvere? devo agire sulla pagina html remota (modificandola in modo da prendere una width al 100% oppure posso farlo (lo preferirei) soltanto in fase di visualizzazione dal device mobile?

Grazie a chi mi darà supporto
Giasco
« Ultima modifica: 07 Marzo 2013, 12:18:10 CET da giasco »

Offline elfo83

  • Utente normale
  • ***
  • Post: 287
  • Respect: +23
    • Mostra profilo
  • Sistema operativo:
    Mac OS 10.8.2
Re:Visualizzare una WebView proporzionata alle dimensioni del display
« Risposta #1 il: 07 Marzo 2013, 16:46:51 CET »
0
Vuoi dire che la webview la fai vedere solo in landscape mode? Prima di mostrare la view devi vedere la larghezza e altezza del tuo contenuto e mantenendo l'aspect ratio devi ridimensionarlo a seconda della larghezza del display o l'altezza. Se per esempio il tuo contenuto è 1920(w)*1080(h) (16:9) e un tuo ipotetico display è 480(w)*840(h), (ridimensionando prima la larghezza) devi ridurre 1920 a 840 e vedere quanto vale l'altezza. In questo caso, mantenedo l'aspect ratio, 1920 diventa 840 e 1080 diventa 473. In questo caso è quasi perfetto perchè vedrai il video che occupa tutta la larghezza dello schermo e quasi tutta l'altezza, eccetto 480-473=7px. Se avessi fatto i calcoli e ti fosse uscito 500 come altezza, ovviamente è + grande della misura che hai e devi iniziare i calcoli considerando l'altezza. Ad esempio un video 400(w)*800(h) e il tuo display è 480 * 800. Se vuoi vedere il video tanto largo quanto l'altezza del display, cioè 800 (sempre in modalità landscape), e mantenedo l'aspect ratio, le dimensioni del video diventano 800*1600. Tu non hai 1600px ma solo 400. Quindi parti dal fatto che vuoi fare entrare l'altezza del tuo video (800) nell'altezza del tuo display in modalità landscape (480). Facendo i calcoli 1600 diventerà 480 e 400 diventerà 240. In questo caso avrai un video che occupa tutta l'altezza del display ma la metà della larghezza 480-240=240. In tutti i casi devi centrare la tua webView. Spero di averti chiarito un po' le idee.
Per calcolare l'aspect ratio dai un'occhiata qui: http://andrew.hedges.name/experiments/aspect_ratio/

Offline giasco

  • Nuovo arrivato
  • *
  • Post: 2
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung S2
  • Sistema operativo:
    Ubuntu
Re:Visualizzare una WebView proporzionata alle dimensioni del display
« Risposta #2 il: 07 Marzo 2013, 17:16:07 CET »
0
Grazie per la risposta,
in ogni caso credo di avere espresso male io il problema... io intendevo visualizzare il contenuto della mia WebView ridimensionandola (fit) all'interno del mio layout (che ho messo orizzontale)...
In ogni caso credo di avere individuato la soluzione (la proverò stasera e vi dirò) nel settaggio di alcune proprietà della WV stessa:

setLoadWithOverviewMode
setUseWideViewPort
setBuiltInZoomControls

stasera provo e vi aggiorno.

Grazie ancora.
G.

Post unito: 07 Marzo 2013, 22:15:03 CET
wv.getSettings().setUseWideViewPort(true);

è la soluzione :-)
grazie
« Ultima modifica: 07 Marzo 2013, 22:15:03 CET da giasco, Reason: Merged DoublePost »