我的代码读取包含字符串的.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 :(得分:0)
默认情况下,ArrayAdapter只能显示文本,因此首先您需要创建一个更复杂的视图来显示图像。为此,您可以扩展ArrayAdapter并覆盖其getView方法以提供您自己的视图,或者仅创建基于BaseAdapter的自定义适配器。
然后,您需要一个包含字符串和图像网址的数据结构。您必须为此创建自定义类,并在ArrayAdapter中使用它而不是字符串。实际使用数据填充这些类的方式取决于数据的结构,但是您需要某种方法来创建字符串和图像数据之间的映射。
最后,要将这些图片网址实际加载到ImageViews中,您需要一些HTTP代码。 ImageViews无法自行加载远程图像。最简单的方法可能是使用像Picasso这样的库。