如何将缩略图添加到列表项?

时间:2017-02-18 23:52:36

标签: android

我的代码读取包含字符串的.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();
    }

1 个答案:

答案 0 :(得分:0)

默认情况下,ArrayAdapter只能显示文本,因此首先您需要创建一个更复杂的视图来显示图像。为此,您可以扩展ArrayAdapter并覆盖其getView方法以提供您自己的视图,或者仅创建基于BaseAdapter的自定义适配器。

然后,您需要一个包含字符串和图像网址的数据结构。您必须为此创建自定义类,并在ArrayAdapter中使用它而不是字符串。实际使用数据填充这些类的方式取决于数据的结构,但是您需要某种方法来创建字符串和图像数据之间的映射。

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