Autore Topic: centrare oggetto in un linear layout  (Letto 775 volte)

Offline minomic

  • Nuovo arrivato
  • *
  • Post: 24
  • Respect: +2
    • Mostra profilo
centrare oggetto in un linear layout
« il: 05 Maggio 2013, 18:32:46 CEST »
0
Ciao a tutti, so che la domanda è banale ma non ci salto fuori!
Ho un linear layout verticale racchiuso in una scroll view. Questo layout contiene alcuni oggetti che vanno benissimo come sono, poi deve contenere una web view che deve essere centrata. La struttura del mio .xml è la seguente:

Codice: [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true" >

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

... tutti gli oggetti ...

        <WebView
            android:id="@+id/webView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal" />
    </LinearLayout>

</ScrollView>

Ovviamente non funziona e, anche ruotando il device in orizzontale, la web view continua a mostrare il suo contenuto (un'immagine quasi quadrata) sulla sinistra. Avevo anche provato a inserire questa web view in un relative layout (a sua volta figlio del linear layout) ma il risultato era sempre lo stesso.
Qualcuno sa dirmi dove sbaglio?
Grazie!
« Ultima modifica: 05 Maggio 2013, 18:34:21 CEST da minomic »

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:centrare oggetto in un linear layout
« Risposta #1 il: 05 Maggio 2013, 18:48:18 CEST »
0
Ma tu vuoi centrare la WebView o il suo contenuto?
Perché là tu stai centrando la WebView, non ciò che questa visualizza.
Postate il LogCat LogCat LogCat LogCat LogCat

Offline minomic

  • Nuovo arrivato
  • *
  • Post: 24
  • Respect: +2
    • Mostra profilo
Re:centrare oggetto in un linear layout
« Risposta #2 il: 05 Maggio 2013, 18:50:39 CEST »
0
Io ho settato apposta la WebView come wrap-content sia per width che per height. In questo modo pensavo che la WebView "incorniciasse" perfettamente il suo contenuto e che quindi, centrando questa, sarebbe stato centrato anche il suo contenuto. Ma mi pare di capire che non sia così. Comunque a me interessa che sia centrata l'immagine che la webView visualizza.

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:centrare oggetto in un linear layout
« Risposta #3 il: 05 Maggio 2013, 19:17:59 CEST »
0
In quel caso devi agire su ciò che la WebView sta visualizzando, quindi a livello di html. Dovresti caricare sostanzialmente una stringa (o un file) html che ti centra l'immagine.
Postate il LogCat LogCat LogCat LogCat LogCat

Offline minomic

  • Nuovo arrivato
  • *
  • Post: 24
  • Respect: +2
    • Mostra profilo
Re:centrare oggetto in un linear layout
« Risposta #4 il: 05 Maggio 2013, 19:25:07 CEST »
0
E' incredibile! Un'operazione così semplice...  :-o
Però non ho capito perchè la mia idea è sbagliata. Io so che la WebView dovrà visualizzare un'immagine quasi quadrata (300x205 o qualcosa del genere), quindi setto le sue dimensione come wrap_content per farla diventare 300x205, quindi centro questa "cornice" che si porta dietro (o meglio dentro) il suo contenuto.

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:centrare oggetto in un linear layout
« Risposta #5 il: 05 Maggio 2013, 20:12:05 CEST »
0
A quanto pare ci sono dei pixel di padding e margin impostati di default: image - Remove unwanted White Space in WebView Android - Stack Overflow
Postate il LogCat LogCat LogCat LogCat LogCat

Offline minomic

  • Nuovo arrivato
  • *
  • Post: 24
  • Respect: +2
    • Mostra profilo
Re:centrare oggetto in un linear layout
« Risposta #6 il: 05 Maggio 2013, 20:41:44 CEST »
0
Ho provato così:

Codice: [Seleziona]
<RelativeLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingTop="15dp" >

            <WebView
                android:id="@+id/webView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="0dp"
                android:padding="0dp"
                android:layout_centerHorizontal="true" />
        </RelativeLayout>

ma il risultato non cambia. Deduco che i margini vadano impostati proprio nella pagina da visualizzare.
Il problema è che non so a priori quale indirizzo verrà passato alla WebView: come posso fare?
Grazie per l'aiuto.

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:centrare oggetto in un linear layout
« Risposta #7 il: 05 Maggio 2013, 21:53:21 CEST »
0
Passi una pagina completa o un'immagine?
Se passi solo un'immagine puoi provare in questo modo:
Codice (Java): [Seleziona]
myWebView.loadData("<html><head><style type='text/css'>body{margin:auto auto;text-align:center;} img{width:100%25;} </style></head><body><img src='www.mysite.com/myimg.jpeg'/></body></html>" ,"text/html",  "UTF-8");Aggiungo che non l'ho provato, l'ho trovato tramite ricerche.
Postate il LogCat LogCat LogCat LogCat LogCat

Offline minomic

  • Nuovo arrivato
  • *
  • Post: 24
  • Respect: +2
    • Mostra profilo
Re:centrare oggetto in un linear layout
« Risposta #8 il: 05 Maggio 2013, 22:37:26 CEST »
0
In realtà passo l'Url di un grafico creato con Google Image Chart, quindi credo di poter dire che gli passo un'immagine. Domani provo la tua soluzione e ti faccio sapere. Grazie!