0

Drawable[]forループで生成することは可能ですか?

配列リスト:

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です。

4

3 に答える 3

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());
}

listフォルダー内のすべての .jpg ファイルのリストを取得する場合は、次のように構成できます。

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);
    }
}
于 2013-10-11T18:47:05.723 に答える
1

予想されるパスの種類はわかりませんが、 Drawable.createFromPathメソッドを試すことができます。最初のリストに正しいパスを保存すると仮定すると、ループは次のようになります.-

Drawable[] drawables = new Drawable[list.size()]();

for (int i = 0; i < list.size(); i++) {
    drawables[i] = Drawable.createFromPath(list.get(i));
}
于 2013-10-11T18:46:04.733 に答える
0

あなたがする必要があるのは for each ループです。こんな感じです。

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]"

于 2013-10-11T18:49:58.243 に答える