2017-02-18 99 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中使用它,而不是字符串。实际上,如何使用数据填充这些类取决于数据的结构,但您需要一些方法来创建字符串和图像数据之间的映射。

最后,要将这些图像网址实际加载到ImageView中,您需要一些HTTP代码。 ImageViews无法自行加载远程图像。最简单的方法可能是使用像Picasso这样的库。