2011-08-12 4 views
1

J'ai le code suivant:Java: Créer Drawable de UTF8 Chaîne

public void onSuccess(String response) { 
    Log.i("EOH",response); 
    Drawable d = null; 
    Object content=response.getBytes(); 
    InputStream is = (InputStream)content; 
    d = Drawable.createFromStream(is, "src"); 

    ImageView captcha = (ImageView)findViewById(R.id.imageView2); 
    captcha.setImageDrawable(d); 
} 

Voici la chaîne de réponse que je reçois (de LogCat):

08-12 11:33: 52,223: INFO/EOH (10244): PNG

08-12 11: 33: 52,223: INFO/EOH (10244): 8 à 12 novembre: 33: 52,223: INFO/EOH (10244): IHDR d 2 % Wéé IDAThíéSgÇ ÏÙM² \ R 08-12 11: 33: 52,223: INFO/EOH (10244): * h = ¨xß- ¥: Ni} Ñ ¨ª:} ¡S + μ3ötÇàÕ Äî # $ a7ÙÝd¾H »
£ ² $ 8ÝÏ «äÙßîóï { |, ²Ê2) Ë |, ² Ê2)Ë��¦,² Ê2) Ë |, ² @ ¬dg¡ä < ¯ð ° BsìJvVHÖpüõÐí ° I · xH ÷ 1 × ÁJkÅâbQ§3PÅKãôÊp) ¬¬ {ÁÖ ° ¡0ªÄR¬> MÎý0uýËâ/| ÖÊÌÊöðèCUWl »CEAC ~ ¸ÈIVRKþ> wKÑgX] góY¼ ¢
12³²Å {zB \ o« & 0t] oìŹ ¢ ³ß} §êªYXiêwq; 08 Ä -12 11: 33: 52.223: INFO/EOH (10244): I.} # Bh + »¹ = ÒNF3Ø} -ÞSíë Aá¯N]*ô5q·¿^¾0þÅÝW.sÌ$§åÍJ.¦^ïtl;P¸@¸tãOèPr~D 08-12 11:33:52.223: INFO/EOH(10244): fÝÆFÄ ?¸1û��¬¡KÓdMÔÈ)��pìaç~��_Ø@lðU|¸ïkâ²g·\³ .©¤+�� .[kóÙqû¥Ò#Îç¼g2G¥ñË?^j½:}=(cÎCé«d!ÔóÉpºqLPrÞШÎxiÔHòE¾© H#}ÂÀ{ ��tDHýQcÁö¬J¯ÅÝÀÔ¤ TY uÖ *, H_EÕ3μÝ | ïÉkM # Q} Â_ ¤Ê ©% |¤ · Ê , Áä> Á4yμÁ ^} 3ô × PÜ/© RLwDáov] \ IaÔIÏ Ðy | 7Ü Å ÷ 4q® # ÎsШ < ~ + t; óF¡Ô% ¤ tÐiÆ> $ $ 9; nÏq|øùóçs} Âç¡ä, GtFGènWj½rºlXôóªð½ & 3qofê 08-12 11: 33: 52.223: INFO/EOH (10244) : IÎY \\ [6¯klÕÖr qºÊê {* ôÀNǶl â¨I®!¬© %ÃÝ|/ðþÙýèáÙÃèßq¤*brPýK=S��wÂmAiÔE:wséKϧXÖ-"����GxV;B¨ÙtÚÓÜâ=UJ¤¢½*c{±ä��dM+KQ9UFcô¨<~yòZ*G~6¥UÖJ;n©q��øÌu4SA7ßFRp£½ÆMºl¸5©+CqP£0ª.{Ó3_ÅýSÝg­ÈüÒ%¤äÊ@%]qÖÛúôiºöÓô!Ñß'ìá>YÞ4ó#!t°pßËøt¦>/i»ý6{s*1ÓÍ÷f¶üÜs¨tËh×dbÅ ´ 46!OtõÈêî))(��ÓeéÂVJ~EK.{y;î4°u lÝâv¯ÅóMÙ×Sǫ̀4Q¢¢&p®M̬Ä_gî§DlwlÙÇíÎ:��³¬·U÷ÇÄ^ôÇ5Ðö49ÉÂtAjeeÕcj��¾WèlXLy)ïÛk.µøÅÀlrNÓu'Éù¬ë.z¦¶?öüN¸MÖä¬EE,^��ÅW½¬¥Zkó­ßRßwçÛÆå ��J£U¶ÊT£®ëÊ��°9ü4´*NóË 5¶uM;³Ròe|XÑ��è>Õÿ;ßO\JÌ��@[¸CÓµåuºVQÞ_\IÌòª ŬVÜj¤qÒA'Ý # úÿüóO × uAO4ʼ²Êñ¨ø¡fÖ {Áe SLY0eÀe SLY0eÀe SLY0eÀe§ ~) l1 + IEND®B`

Comme vous pouvez le voir, j'essaie de convertir une chaîne appelée 'response' en un objet Drawable. Le problème est, l'image est toujours vide!

Est-ce que quelqu'un sait d'une façon que je pourrais être en mesure de résoudre ce problème?

Un grand merci à l'avance,


Edit:

Cela ne fonctionne pas non plus, (

@Override 
public void onSuccess(String response) { 
    Log.i("EOH",response);   
    ByteArrayInputStream bis = new ByteArrayInputStream(response.getBytes()); 
    Bitmap bm=BitmapFactory.decodeStream(bis); 

    ImageView imgView = (ImageView)findViewById(R.id.imageView2); 
    imgView.setImageBitmap(bm); 
} 

Répondre

2

Essayez ceci:

BitmapDrawable drawable = BitmapFactory.decodeFile(response); 

Ou vous pouvez faites ce qui suit, si vous ne le faites pas l'a édité pour être dessiné.

Bitmap bm = BitmapFactory.decodeFile(response); 
ImageView captcha = (ImageView)findViewById(R.id.imageView2); 
captcha.setImageBitmap(bm); 

ÉDITÉE

Pour les fichiers en ligne, vous pouvez utiliser ceci:

BitmapFactory.decodeStream(is) 
+0

Salut, merci beaucoup pour la réponse - je viens de rentrer de mon heure de déjeuner - je vais essayer cela et revenir à vous .. – Eamorr

+0

Hey, a essayé d'intégrer votre code, et cela n'a pas fonctionné; (Image apparaît vierge ... – Eamorr

+0

Attendez - est-ce un fichier local ou un fichier sur le web? –

0

est ici la fonction complète J'utilise (ne fonctionne pas ...):

private void captchaLoad() { 
     AsyncHttpClient myClient = new AsyncHttpClient(); 
     PersistentCookieStore myCookieStore = new PersistentCookieStore(context); 
     myClient.setCookieStore(myCookieStore); 
     RequestParams params = new RequestParams(); 

     myClient.post("http://www.extremetech.com/wp-content/uploads/2011/08/amd-logo-106x59.jpg", params, new AsyncHttpResponseHandler() { 
      @Override 
      public void onStart() { 

      } 

      @Override 
      public void onSuccess(String response) { 
       Log.i("EOH",response); 

       ByteArrayInputStream bis = null; 
       try { 
        bis = new ByteArrayInputStream(response.getBytes("UTF8")); 
       } catch (UnsupportedEncodingException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
       Bitmap bm=BitmapFactory.decodeStream(bis); 

       ImageView imgView = (ImageView)findViewById(R.id.imageView2); 
       imgView.setImageBitmap(bm); 
      } 

      @Override 
      public void onFailure(Throwable e) { 

      } 
     }); 
    }