0

Web サイト (9gag など) から写真を読み込むシンプルなアプリを作成しようとしています。jSoup と asyncTask を使用しています。問題は、アプリを実行しているときに、画像の URL のみが表示されることです。URL ではなく listView に画像を表示するにはどうすればよいですか。XML の可能性はありますか? ヘルプ :-/

![スクリーンショット] https://www.dropbox.com/s/moybisjrbdgzjre/Screenshot_2013-04-29-20-09-13.png

ここに私の LoadImages クラスがあります:

public LoadImages(ArrayList list, ArrayAdapter adapter)
{

    this.list = list;
    this.adapter = adapter;
}

@Override
protected Elements doInBackground(String... params) {
     org.jsoup.nodes.Document doc = null;
        try
        {
            doc =Jsoup.connect("http://mongol.co.il/").get();
            return  doc.select("img");

        }
        catch (IOException e1)
        {
            e1.printStackTrace();
        }
    return null;
}

@Override
protected void onPostExecute(Elements result) {
    super.onPostExecute(result);
    int flag=0;
    //Bitmap bitmap = null;
    for ( org.jsoup.nodes.Element div : result )
    {
        String bla = div.absUrl("src");
        list.add(bla);
        flag++;
        if(flag==3)
        break;

    }
    adapter.notifyDataSetChanged();

}

これも私の .xml ファイルです。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  android:orientation="vertical"  
  android:layout_width="fill_parent"  
  android:layout_height="fill_parent">
<ListView 
     android:id="@+id/listview"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

 </ListView>

 </LinearLayout> 

前もって感謝します!

4

3 に答える 3

0

この時点では、URL のみを取得しています。画像を表示するには、実際のビットマップ データを取得する必要があります。これを行うには、次の 2 つの方法があります。

  1. すべての画像をダウンロードし、すべてが取得された後にリストを表示します
  2. 画像のプレースホルダーを使用してすぐにリストを表示し、必要に応じて画像を取得します

一般に、手に入れたものを示すことで迅速に対応する方が、より良いエクスペリエンスになります (オプション #2)。ListView は、このモデルに非常に役立ちます。アダプターの getView() メソッドでは、ビットマップを取得するために AsyncTask を起動しながら、プレースホルダー イメージを表示します。次に、onPostExecute で Image を設定します。残念ながら、View のリサイクルは面倒です。この基本的な実装では、多くの場合、誤った画像が表示され、ユーザーがすばやく前後にスクロールすると、デバイスが完全に応答しなくなります。

幸いなことに、これらは他の人が解決した問題です。実際、Android デベロッパー ウェブサイトには、優れたチュートリアル セットとサンプル コードがあります

于 2013-04-29T17:42:07.157 に答える
0

String をリストに追加しています

 String bla = div.absUrl("src");
 list.add(bla);

custom adapter ( 用にListView)作成する必要がありますString bla。これにより、それが取得され、イメージがダウンロードされます。

このチュートリアルを試す

于 2013-05-03T18:14:33.890 に答える