Autore Topic: caricare codice html in textview  (Letto 362 volte)

Offline rebus_007

  • Utente junior
  • **
  • Post: 51
  • Hola!
  • Respect: +2
    • Github
    • Google+
    • rebus007
    • raphael.bussa
    • rebus_007
    • Mostra profilo
    • rebus007
  • Dispositivo Android:
    Nexus 5X
  • Play Store ID:
    Raphael+Bussa
  • Sistema operativo:
    OS X El Capitan
caricare codice html in textview
« il: 25 Giugno 2014, 17:39:21 CEST »
0
e se fosse solo caricare il testo, non ci sarebbero problemi, infatti faccio così:

Codice (Java): [Seleziona]
testo.setText(Html.fromHtml(testoArticolo));
il problema sorge quando nell'html sono presenti immagini, da quel che ho visto nella documentazione, i tag <img> li legge ma se non trova l'immagine disponibile mette un orribile quadrato celestino con bordo nero...



Citazione
Returns displayable styled text from the provided HTML string. Any <img> tags in the HTML will display as a generic replacement image which your program can then go through and replace with real images.

This uses TagSoup to handle real HTML, including all of the brokenness found in the wild.
http://developer.android.com/reference/android/text/Html.html#fromHtml(java.lang.String)

qualcuno ha un'idea su come scaricare ogni immagine e metterla al posto di quei quadrati celesti?

grazie rebus
"Chi è più pazzo, il pazzo o il pazzo che lo segue?" - Obi-Wan Kenobi

DEVICE CHE USO: Nexus 5X 32 GB | NVIDIA SHIELD Tablet K1 16 GB

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:caricare codice html in textview
« Risposta #1 il: 25 Giugno 2014, 18:04:03 CEST »
0
Prova con una WebView invece di una TextView.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline rebus_007

  • Utente junior
  • **
  • Post: 51
  • Hola!
  • Respect: +2
    • Github
    • Google+
    • rebus007
    • raphael.bussa
    • rebus_007
    • Mostra profilo
    • rebus007
  • Dispositivo Android:
    Nexus 5X
  • Play Store ID:
    Raphael+Bussa
  • Sistema operativo:
    OS X El Capitan
Re:caricare codice html in textview
« Risposta #2 il: 25 Giugno 2014, 18:05:22 CEST »
0
Una webview non posso usarla per problemi di layout... Devo usare una textview

Inviato dal mio Galaxy Nexus utilizzando Tapatalk



Post unito: 25 Giugno 2014, 21:43:17 CEST
ho trovato questa libreria: https://github.com/dschuermann/html-textview, che dovrebbe fare a caso mio... qualcuno sa come usarla? nel readme non sono proprio chiari...
« Ultima modifica: 25 Giugno 2014, 21:43:17 CEST da rebus_007, Reason: Merged DoublePost »
"Chi è più pazzo, il pazzo o il pazzo che lo segue?" - Obi-Wan Kenobi

DEVICE CHE USO: Nexus 5X 32 GB | NVIDIA SHIELD Tablet K1 16 GB

Offline MikeKeepsOnShine

  • Utente junior
  • **
  • Post: 84
  • Respect: 0
    • mikekeepsonshine
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Fame , Samsung Galaxy Tab 2 7.0
  • Sistema operativo:
    Windows 7
Re:caricare codice html in textview
« Risposta #3 il: 27 Giugno 2014, 17:43:57 CEST »
0
Se vuoi mostrare le immagini devi per forza usare una webview ... per i problemi di layout prova ad impostare delle proprietà di CSS all'interno del codice, allacciandolo alla stringa che vai a codificare nella webview, ad esempio
Codice (Java): [Seleziona]
/* HTML è il tuo codice */
tuaWebView.loadData(HTML+"<style>img {max-width:300px!important; height:auto!important;}</style>", "text/html", "ISO-8859-1");
Io l'ho usato per mostrare del codice HTML con immagini etcc.
True perfection has to be imperfect

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 596
  • Respect: +133
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:caricare codice html in textview
« Risposta #4 il: 04 Luglio 2014, 19:27:56 CEST »
0
Devi implementare un ImageGetter e passarlo a Html.fromHtml.

Nell'esempio che segue si ricerca tra i Drawable dell'app l'immagine, ossia se ho un riferimento del tipo <img src="ic_icon" /> verrà caricato @drawable/ic_icon.

Per caricare immagini esterne devi farlo esplicitamente nel metodo getDrawable.

Codice (Java): [Seleziona]
public class MiaActivity extends Activity implements ImageGetter {

        @Override
        protected void onCreate(Bundle savedInstanceState) {

                setContentView(R.layout.mia_activity_layout);

                String mMessage = "Va che bella: <img src=\"ic_icon\" />";

                TextView txt = (TextView)findViewById(R.id.mkBody);

                txt.setText(Html.fromHtml(mMessage, this, null)); //Il "this" è il riferimento all'ImageGetter

                txt.setMovementMethod(LinkMovementMethod.getInstance()); //Questo per reagire ai link

        }

        @Override
        public Drawable getDrawable(String source) {
            Drawable retVal = null;
            int resID = mRes.getIdentifier(source, "drawable", this.getContext().getPackageName());
            retVal = mRes.getDrawable(resID);
            return retVal;
        }
}
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.