2017-02-18 3 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.

Смежные вопросы