Autore Topic: Visualizzare immagini in una TextView con ImageGetter da HTML  (Letto 401 volte)

Offline pcg4m3s

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S3
  • Sistema operativo:
    Windows 7
Visualizzare immagini in una TextView con ImageGetter da HTML
« il: 19 Giugno 2013, 19:34:31 CEST »
0
Salve,
sono nuovissimo nel mondo di Android.
Ho la necessità di visualizzare delle immagini che si trovano su server remoto e che sono indicate in codice html (che ovviamente contiene anche testo oltre alle immagini) tutto su una TextView.

Il codice html lo visualizzo così:
Codice (Java): [Seleziona]
myTextView.setText(Html.fromHtml(stringa_che_contiene_il_codice_html));
Ovviamente così facendo visualizzo solo il testo perchè da quanto ho letto il parser salta il tag <img>.
Allora ho trovato in rete una piccola classe che implementa ImageGetter e che permette anche la visualizzazione delle immagini:
Codice (Java): [Seleziona]
class HttpImageGetter implements ImageGetter {

                @Override
                public Drawable getDrawable(String source) {
                        try {
                                URL url = new URL(source);
                                HttpURLConnection conn = (HttpURLConnection)url.openConnection();
                                conn.setDoInput(true);
                                conn.connect();
                                InputStream is = conn.getInputStream();
                                BitmapDrawable dr = new BitmapDrawable(BitmapFactory.decodeStream(is));
                                dr.setBounds(0, 0, dr.getIntrinsicWidth(), dr.getIntrinsicHeight());
                               
                                return dr;
                        } catch (IOException e) {
                                e.printStackTrace();
                                return null;
                        }
                }
        }

Modificando quindi l'assegnazione del testo alla mia TextView:
Codice (Java): [Seleziona]
myTextView.setText(Html.fromHtml(stringa_che_contiene_il_codice_html, new HttpImageGetter(), null));
In questo modo funziona e le immagini vengono visualizzate.
Sono sorti però 2 problemi:
1) il costruttore BitmapDrawable(Bitmap) è deprecato, quindi sarebbe utile un'alternativa.
2) alcune immagini sono troppo grandi e vengono tagliate sullo schermo del dispositivo/simulatore. Per cui mi servirebbe ridimensionare le immagini in relazione alla larghezza dello schermo (se l'immagine è più grande).

Spero che qualcuno di voi possa aiutarmi.
Grazie mille! :)