2017-02-18 7 views
0

私のコードは文字列を含む.txtファイルを読み込み、リストビューに表示します。しかし、画像へのリンクを含む別の.txtファイルをどのようにして読み込み、それらの画像をサムネイルとして各リスト項目にロードするのですか?リストアイテムにサムネイルを追加するには?

listView1 = (ListView) findViewById(R.id.listView1); 
    try { 
     String filePath = Environment.getExternalStorageDirectory() 
       .getAbsolutePath() + "/my_market_apps_list.txt"; 
     BufferedReader br = new BufferedReader(new InputStreamReader(
       new FileInputStream(filePath), "Cp1252"), 100); 
     String line; 
     final ArrayList<String> lines = new ArrayList<String>(); 
     while ((line = br.readLine()) != null) { 
      lines.add(line); 
     } 
     br.close(); 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_list_item_1, lines); 

     listView1.setAdapter(adapter); 
     listView1.setOnItemClickListener(new OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, 
        int position, long id) { 
       startActivity(new Intent(
         Intent.ACTION_VIEW, 
         Uri.parse("http://play.google.com/store/apps/details?id=" 
           + lines.get(position)))); 
      } 
     }); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

答えて

0

デフォルトでArrayAdapterは、テキストのみを表示することができますので、最初にあなたがやるとしても、画像を表示するために、より複雑なビューを作成する必要があります。そのためには、ArrayAdapterを拡張してgetViewメソッドを上書きして、独自のビューを提供するか、代わりにBaseAdapterに基づいてカスタムアダプタを作成することができます。

次に、文字列と画像URLの両方を保持するデータ構造が必要です。そのためにカスタムクラスを作成し、それを文字列ではなくArrayAdapterで使用する必要があります。実際にそれらのクラスにデータをどのように取り込むかは、データの構造によって異なりますが、文字列とイメージデータの間のマッピングを作成するには何らかの方法が必要です。

最後に、これらのイメージURLをImageViewsにロードするには、HTTPコードが必要です。 ImageViewsはリモートイメージ自体を読み込むことができません。最も簡単な方法はおそらくPicassoのようなライブラリを使うことでしょう。

関連する問題