2011-08-12 30 views
1

からDrawableのを作成し、私は次のコードを持っている:ここではJavaの:UTF8文字列

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); 
} 

は、私は(LogCatから)取得していた応答文字列です:

8月12日11:33: INFO/EOH(10244):INFO/EOH(10244):PNG

08-12 11:33:52.223:INFO/EOH(10244):08-12 11: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ß-¥:ニッケル}Ѫ:}¡S +μ3ötÇàÕ AI#$a7ÙÝd¾H」
£ ²$8ÝÏ«äÙßîóï{ |、²Ê2}Ë |、²Ê2)Ë��¦,²Ê2)Ë |、²@¬dg¡<¯ð°ÃƒÆ'ââ、¬â、¬xH÷1×ÁJkÅâbQ§3PÅKãôÊp)¬¬ {AO°¡0ªÄR¬>MÎý0uýËâ/ |ÖÊÌÊöðèCUWl»〜¸ÈIVRKþ>wKÑgX]góY¼¢
12³²Å{ZB \ 0«& 0トン]oìŹ¢³ß}§êªYXiêwqcëaç、A 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¯ÅÝÀÔ¤TYuÖ*、H_EÕ3μÝ|ïÉkM#Q}Â_¤Ê©% ||・Ê 、Áä>Â4yμÁ^}3ô×PÜ/©RLwDáov] \IaÔIϧ Ðy|7Ü Å÷4q®#ÎsШ<〜+ t;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¯¯¡¡ : IwwY \¤s[6-1klÕÖ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ʼ²†¡¯{Áe SLY0eÀSSLY0eÀe SLY0eÀe§〜)l1 + IEND®B`

ご覧のとおり、「レスポンス」という文字列をDrawableオブジェクトに変換しようとしています。問題は、画像は常に空白です!

これを修正できる可能性がある人はいますか?事前に

多くのおかげで、


編集:

これはどちらか動作しませんでした。(

@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); 
} 

答えて

2

このお試しください:

BitmapDrawable drawable = BitmapFactory.decodeFile(response); 

それとも、可能性をあなたがいないなら、次のことをしてください描画可能に編集しました。

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

EDITED

オンラインファイルの場合、あなたはこれを使用することができます:

BitmapFactory.decodeStream(is) 
+0

こんにちは、応答のための多くのおかげで - ちょうど戻って私の昼食時間からだ - 私はそれを試してみると、あなたに戻って取得します。.. – Eamorr

+0

ちょっと、あなたのコードを統合しようとしましたが、うまくいきませんでした;(画像は空白になっています... – Eamorr

+0

待ってください - これはローカルファイルかウェブからのファイルですか? –

0

ここで私が使用しているフル機能(動作しませんが...)です:

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) { 

      } 
     }); 
    } 
関連する問題