是否可以使用for循环生成Drawable[]
?
的ArrayList:
List<String> list = new ArrayList<String>();
list.add(Environment.getExternalStorageDirectory() + "/App/posters/80348-16.jpg");
list.add(Environment.getExternalStorageDirectory() + "/App/posters/83462-8.jpg");
到
private Drawable[] mThumbIds = {
Drawable.createFromPath(Environment.getExternalStorageDirectory() + "/Treevo/posters/80348-16.jpg"), Drawable.createFromPath(Environment.getExternalStorageDirectory() + "/Treevo/posters/83462-8.jpg")
};
我的想法:
for (int i = 0; i < list.size(); i++)
{
//But what I need to do here?
}
我的目标是为GridView
生成项目。
答案 0 :(得分:2)
你可以这样做:
File dir = Environment.getExternalStorageDirectory();
List<File> list = new ArrayList<File>();
list.add(new File(dir, "App/posters/80348-16.jpg"));
list.add(new File(dir, "App/posters/83462-8.jpg"));
List<Drawable> mThumbs = new ArrayList<Drawable>();
for (File file : list) {
mThumbs.add(Drawable.createFromPath(file.getPath());
}
如果要检索文件夹中所有.jpg文件的列表,可以像这样构建list
:
File posterDir = new File(Environment.getExternalStorageDirectory(),
"App/posters");
List<File> list = new ArrayList<File>();
for (File file : posterDir.listFiles()) {
if (file.isFile() && file.getName().endsWith(".png")) {
list.add(file);
}
}
答案 1 :(得分:1)
不确定它所期望的路径,但您可以尝试使用Drawable.createFromPath方法。假设你在第一个列表中存储了正确的路径,那么你的循环就像这样.-
Drawable[] drawables = new Drawable[list.size()]();
for (int i = 0; i < list.size(); i++) {
drawables[i] = Drawable.createFromPath(list.get(i));
}
答案 2 :(得分:0)
您需要做的是针对每个循环。它就是这样的。
List<String> list = new ArrayList<String>();
String[] imgPathList = ... // Add all of the "/App/poster..." strings here
for(String x : imgPathList) {
list.add(Enviroment.getExternalStorageDirectory() + x);
}
这是一个不同的例子。
List<String> list = new ArrayList<String>();
String[] data = {
"123",
"456",
"789"
};
for(String x : data) {
list.add("Number: " + x);
}
System.out.println(list.toString());
版画:“[编号:123,编号:456,编号:789]”