2017-02-18 96 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這樣的庫。