2017-02-18 2 views
0

Mein Code liest eine TXT-Datei, die Strings enthält, und zeigt sie in meiner Listenansicht an. Aber wie lese ich eine andere .txt-Datei, die Links zu Bildern enthält, und lade diese Bilder dann als Miniatur auf jedes Listenelement?Wie kann ich Miniaturansichten zu Listenelementen hinzufügen?

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

Antwort

0

Die ArrayAdapter ist standardmäßig nur in der Lage Text zu zeigen, so müssen zuerst werden Sie werde eine komplexere Sicht erstellen Bilder als auch zu zeigen. Dazu können Sie entweder ArrayAdapter erweitern und seine getView-Methode überschreiben, um eine eigene Ansicht bereitzustellen, oder einfach einen benutzerdefinierten Adapter basierend auf BaseAdapter erstellen.

Dann benötigen Sie eine Datenstruktur, die sowohl Ihre Zeichenfolgen als auch die Bild-URLs enthält. Sie müssen dafür eine benutzerdefinierte Klasse erstellen und diese in Ihrem ArrayAdapter anstelle von Strings verwenden. Wie Sie diese Klassen tatsächlich mit Ihren Daten füllen, hängt davon ab, wie Ihre Daten strukturiert sind. Sie benötigen jedoch eine Möglichkeit, um eine Zuordnung zwischen Ihren String- und Bilddaten zu erstellen.

Um tatsächlich diese Bild-URLs in ImageViews zu laden, benötigen Sie einen HTTP-Code. ImageViews kann Remote-Bilder nicht selbst laden. Der einfachste Weg wäre wahrscheinlich, eine Bibliothek wie Picasso zu verwenden.

Verwandte Themen