Autore Topic: Problema con ImageIcon sottoforma d stringa (base64Coder) in serializzazione xml  (Letto 459 volte)

Offline Albe85

  • Utente junior
  • **
  • Post: 102
  • Respect: +1
    • Mostra profilo
Buonasera a tutti!
Ho un problema. Mi spiego.
Io ho un database postgresql su un server dal quale prelevo e serializzo via xml alcuni oggetti contenenti anche un'immagine.
L'immagine è del tipo ImageIcon e viene serializzata in una stringa ottenuta convertendo l'ImageIcon con l'uso della classe Base64Coder.
(Sotto mi spiego meglio)
Il tutto viene poi serializzato su un file xml che produce il seguente risultato (un articolo - Ne metto uno solo ma in realtà ho tutta una lista):
Codice (XML): [Seleziona]
 <?xml version="1.0" encoding="UTF-8" ?>
- <java>
- <object name="agenda.bean.ArticoloBean">
- <Nome>
  <String>Sale</String>
  </Nome>
- <NonCibo>
  <boolean>false</boolean>
  </NonCibo>
- <Id>
  <int>0</int>
  </Id>
- <Image>
  <imageicon>/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2/ZFNRsBzlvoNxJhrhhGh6Bev41rQaTaW3KRh29TVwnknvTc85qgAimnigmmk0wFJophNFAE+2mng0UUAITgUwuaKKAEzmmEEdDRRTAaH2rkZzTg5KbizZoopANM5PTH4qDUMqRzcSRRP/vIKKKAHRRxQfcjRP9xAKtxxneRkEY7iiimBKgzyMA089KKKAIietMzzRRSAaTSZoooAQmiiigD/2Q==
</imageicon>
  </Image>
- <Changed>
  <boolean>false</boolean>
  </Changed>
  </object>

Il tag imageicon contiene una stringa codificata in modo da poter serializzare l'immagine ImageIcon che mi dava problemi di serializzazione. Il metodo di codifica praticamente converte l'immagine in una stringa. Poi utilizzando il metodo di decodifica sotto riportato mi ricostruisco l'ImageIcon.
 Con i seguenti metodi mi codifico e decodifico l'imageicon:
Codice (Java): [Seleziona]
public String Encoder64Image() {       
                String provaimg = new String(Base64Coder.encode(ImageUtility.Image2Bytes(image)));
                return provaimg;
        }
       
public ImageIcon Decoder64Image(String sin) {  
        char[] chars = sin.toCharArray();
        byte[] provaimg2 = (Base64Coder.decode(chars,0,chars.length));
        return new ImageIcon(provaimg2);
}


Ora io ho fatto un parser lato android (non server) per poter prelevare i dati dal file xml via http e inserirli in un database SQLite in android per poi visualizzarli in una lista.
Tac mi sono accorto che android non supporta gli ImageIcon e quindi anche se dalla stringa immagine mi recupero l'ImageIcon con il metodo di decodifica sopra riportato non posso fare nulla.

Qualcuno sa come posso gestire ed aggirare il problema di modo da riuscire a visualizzare l'immagine lato android e memorizzarla nel
DB SQLite e poi visualizzarla nella listview???
Vi ringrazio.
Spero di essere stato chiaro. Se non avete capito scrivetemelo pure.
Ciao.

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
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store