1

URLから画像を取得して、に表示していimageviewます。しかし、私のコードは私にnullメッセージを与えています。

ImageView imageview = (ImageView) findViewById(R.id.imageView1);
try {
    Uri uri=Uri.parse("http://10.0.2.2:8083/call/rahul.jpg");
    // uri.buildUpon().appendQueryParameter("key", "Android developer");
    URI u = new URI(uri.toString());
    System.out.println("path is "+u);
    HttpClient httpclient = new DefaultHttpClient();
    HttpGet httpget = new HttpGet();
    httpget.setURI(u);
    //httpget.setEntity(new UrlEncodedFormEntity(nameValuePairs));
    HttpResponse response = httpclient.execute(httpget);
    HttpEntity entity = response.getEntity();
    is = entity.getContent(); 

    Bitmap bitmap = BitmapFactory.decodeStream(is);
    imageview.setImageBitmap(bitmap); 
} catch(Exception e) {
    System.out.println("this is the error "+e.getMessage()); 
}

logcat:-

02-04 19:32:35.355: D/dalvikvm(679): threadid=1: still suspended after undo (sc=1 dc=1)
02-04 19:32:35.355: I/dalvikvm(679): Wrote stack traces to '/data/anr/traces.txt'
02-04 19:32:35.895: I/dalvikvm(679): threadid=3: reacting to signal 3
02-04 19:32:35.915: D/dalvikvm(679): threadid=1: still suspended after undo (sc=1 dc=1)
02-04 19:32:35.915: I/dalvikvm(679): Wrote stack traces to '/data/anr/traces.txt'
02-04 19:32:36.425: I/dalvikvm(679): threadid=3: reacting to signal 3
02-04 19:32:36.445: D/dalvikvm(679): threadid=1: still suspended after undo (sc=1 dc=1)
02-04 19:32:36.445: I/dalvikvm(679): Wrote stack traces to '/data/anr/traces.txt'
02-04 19:32:36.992: I/dalvikvm(679): threadid=3: reacting to signal 3
02-04 19:32:37.005: D/dalvikvm(679): threadid=1: still suspended after undo (sc=1 dc=1)
02-04 19:32:37.005: I/dalvikvm(679): Wrote stack traces to '/data/anr/traces.txt'
02-04 19:32:37.565: I/dalvikvm(679): threadid=3: reacting to signal 3
02-04 19:32:37.585: D/dalvikvm(679): threadid=1: still suspended after undo (sc=1 dc=1)
02-04 19:32:37.585: I/dalvikvm(679): Wrote stack traces to '/data/anr/traces.txt'
02-04 19:32:38.105: I/dalvikvm(679): threadid=3: reacting to signal 3
02-04 19:32:38.125: D/dalvikvm(679): threadid=1: still suspended after undo (sc=1 dc=1)
02-04 19:32:38.125: I/dalvikvm(679): Wrote stack traces to '/data/anr/traces.txt'
02-04 19:32:38.645: I/dalvikvm(679): threadid=3: reacting to signal 3
02-04 19:32:38.665: D/dalvikvm(679): threadid=1: still suspended after undo (sc=1 dc=1)
02-04 19:32:38.665: I/dalvikvm(679): Wrote stack traces to '/data/anr/traces.txt'
02-04 19:32:39.175: I/dalvikvm(679): threadid=3: reacting to signal 3
02-04 19:32:39.195: D/dalvikvm(679): threadid=1: still suspended after undo (sc=1 dc=1)
02-04 19:32:39.205: I/dalvikvm(679): Wrote stack traces to '/data/anr/traces.txt'
02-04 19:32:39.695: I/dalvikvm(679): threadid=3: reacting to signal 3
02-04 19:32:39.716: D/dalvikvm(679): threadid=1: still suspended after undo (sc=1 dc=1)
02-04 19:32:39.716: I/dalvikvm(679): Wrote stack traces to '/data/anr/traces.txt'
4

2 に答える 2

0

これを試して:

ImageView imageview = (ImageView) findViewById(R.id.imageView1);
mBitmap = BitmapFactory.decodeStream((InputStream) new URL(http://10.0.2.2:8083/call/rahul.jpg).getContent());
imageview .setImageBitmap(mBitmap);
于 2013-02-04T14:14:33.437 に答える
0

さて、私が提案したことはあなたにとってうまくいったとあなたが言ったので、私はそれを答えとして提出すべきだと思います。私は、あなたが実際の解決策から遠く離れているように見えること、そしてこの問題が何度も解決されているので、 android-queryなどのライブラリを使用したいと思うかもしれないことを観察しました。私はそのライブラリとは関係がありません-私は以前にそれを自分で使用したことがあります。また、私はあなたの質問に技術的に答えなかったので、私はあなたの問題を解決しましたが、私は緑のダニのためにもう少しやったほうがいいですよね?

ライブラリの使用法は問題ないように見え、recycleを呼び出す必要はありません(Googleで簡単に見つけることができます)。ロード時に画像をフェードインしたり、非常に大きい場合はロード時にダウンサンプリングしたりするなど、他にも多くの優れた機能を実行できることに注意してください。あなたはandroid-queryサイトでたくさんの例を見つけることができます。

無料かどうかの質問については、リンク先のメインページの左側、上部にライセンスが宣言されています。これはApacheLicense2.0です。つまり、このライセンスでは、アプリのディストリビューションにApacheライセンスのコピーを含め、ライセンスの下で使用するライブラリについて明確に言及している限り、ライブラリを自由に使用できます。または、FAQから宣伝文を読むことができます。通常、この種のことについては、アプリにabout画面を表示します。これは、Apache 2.0ライセンスの下でandroid-queryライブラリを使用しており、ライセンスのコピーを表示できることを明確に示しています。適切な帰属:このライセンスの下で見つけることができる非常に多くの有用なものに支払うのは小さな価格であることに同意すると思います:o)

あなたのアプリで頑張ってください!

于 2013-02-05T18:59:34.120 に答える