Autore Topic: Html.fromHtml(String source, Html.ImageGetter imgGetter, Html.TagHandler tag)  (Letto 3118 volte)

Offline Agafi

  • Utente normale
  • ***
  • Post: 173
  • Respect: +10
    • svetlana-tomasevschi-perini
    • agafist
    • Mostra profilo
  • Dispositivo Android:
    SE Xperia Neo,LG Optimus One,Asus EEE Pad Transformer,HTC Magic Vodafone
  • Play Store ID:
    Agafi
  • Sistema operativo:
    Win7
Oggi avevo bisogno di utilizzare il metodo

Codice (Java): [Seleziona]
fromHtml(String source, Html.ImageGetter imageGetter, Html.TagHandler tagHandler)
della classe

Html

In particolare per recuperare le immagini di un determinato sito.

Cercando in rete mi sono imbattuta in un pezzo di codice che fa al caso mio (ridattandolo un poco):

Codice (Java): [Seleziona]
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
import android.text.Html;

public class CustomImageGetter implements Html.ImageGetter{
       
        final static String CACHE_DIR = "/sdcard/DIC/image_cache/";  // ->la directory nella quale inserire le immagini scaricate
       
       
        public Drawable getDrawable(String url) {

                        Drawable drawableImg=null;

                        String name = url.substring(url.lastIndexOf("/")+1);  //->recupero il nome e l'estensione dell'immagine da scaricare

                        File f = new File(CACHE_DIR+name);
                       
                        if(!f.exists()){  //->la scarico solo se non esiste già nella directory di cache
                                try{
                                        downloadImage(url,f);
                                        drawableImg = Drawable.createFromPath(f.getAbsolutePath());
                                        drawableImg.setBounds(0, 0, 32, 32);                   
                          }catch(IOException e) {
                                        drawableImg=null;
                                }
                        }
                }
                return drawableImg;
        }
        private void downloadImage(String url,File f) throws IOException   {
        URL myFileUrl =new URL(url);  
        HttpURLConnection conn= (HttpURLConnection)myFileUrl.openConnection();
        conn.setDoInput(true);
        conn.connect();
        InputStream is = conn.getInputStream();
       
        Bitmap bm = BitmapFactory.decodeStream(is);
        FileOutputStream out = new FileOutputStream(f);  
        bm.compress(Bitmap.CompressFormat.PNG, 90, out);    
    }
}

Ricordatevi di usare le permisison per scrivere in sdcard
« Ultima modifica: 16 Settembre 2010, 12:23:13 CEST da JD »

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Html.fromHtml(String source, Html.ImageGetter imgGetter, Html.TagHandler tag)
« Risposta #1 il: 05 Ottobre 2010, 10:47:56 CEST »
0
Interessante.
Non compila, perché c'è una } in più, prima del return drawableImg;

7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline Agafi

  • Utente normale
  • ***
  • Post: 173
  • Respect: +10
    • svetlana-tomasevschi-perini
    • agafist
    • Mostra profilo
  • Dispositivo Android:
    SE Xperia Neo,LG Optimus One,Asus EEE Pad Transformer,HTC Magic Vodafone
  • Play Store ID:
    Agafi
  • Sistema operativo:
    Win7
Re:Html.fromHtml(String source, Html.ImageGetter imgGetter, Html.TagHandler tag)
« Risposta #2 il: 05 Ottobre 2010, 11:01:08 CEST »
0
Interessante.
Non compila, perché c'è una } in più, prima del return drawableImg;
Hai proprio ragione il copia incolla miete vittime  ;-)