2013-04-29 44 views
0

我在資產中有很多文件夾和圖像,例如:「folder1/img1.jpg,img2.jpg ... img15.jpg; folder2/img1.jpg, img2.jpg ... img20.jpg; ......「。我有一個名爲AssetManager中資產的所有文件夾的ListView,當OnClickItem我會加載單擊項目(選定的文件夾)中的所有圖像。因爲我在GitHub使用代碼「捲曲頁」,我需要ID的陣列加載每個文件夾中的所有圖像不使用簡單的陣列,用於繪製,例如:如何從資產中創建一個id圖像數組有很多文件夾

private int[] mIdsSelectedFolder = { R.drawable.img1, R.drawable.img2,... R.drawable.img15};

然後我加載圖像:

Drawable d = getResources().getDrawable(mIdsSelectFolder[index]);

但我不知道如何給每個文件夾中的計數numble圖像,然後讓所有ID形象,從每個文件夾創建一個數組,通過複製和粘貼圖像的名稱相同的例子不輸入所有資源之上,因爲每個文件夾都有不同的圖像數量!

+1

標記爲'低quality' – Nezam 2013-04-29 13:39:18

+0

+1問得好。從代碼片段和描述中可以清楚你想要完成什麼。 – 2013-04-29 13:59:12

+0

現在有些問題:爲什麼你需要一個資源ID數組?你可以給你正在使用的「Curl Page」項目的鏈接嗎? – 2013-04-29 14:02:07

回答

0

你必須創建服裝列表視圖。並覆蓋getView方法

public View getView(final int position, View convertView, 
      ViewGroup parent) { 

     LayoutInflater inflater = (LayoutInflater) getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 
     View view = inflater.inflate(R.layout.userprofilepic, null, true); 

     ImageView img= (ImageView) view.findViewById(R.id.img); 

     img.setImageDrawable(getResources().getDrawable(mIdsSelectFolder[position]);); 



     return view; 
    } 
+0

有點上下文,請 – Blackbelt 2013-04-29 13:41:03

+0

有點解釋不會傷害:) – 2013-04-29 13:45:41

1

您可以嘗試使用getIdentifier通過名稱獲取id。

下面你將看到的示例代碼:

int id = getResources().getIdentifier("img" + index , "id", getPackageName()); 
if (id!= null) 
{ 
    Drawable d = getResources().getDrawable(id); 
} 
0

下面的代碼將列出文件駐留在「目錄」。

try { 
    AssetManager am = this.getAssets(); 
    String str[] = getAssets().list("directory_name"); 
    for (int i = 0; i < str.length; i++) { 
     Log.d("TAG", str[i]); 
     if (str[i].endsWith(".jpg")) { 
      Drawable drw = Drawable.createFromStream(am.open(str[i]),null); 
     } 
    } 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

你只需要創建特定目錄的陣列,並添加內部的文件名。您也可以爲此創建自定義類。在我的示例中,如果文件名以JPG結尾,則將從中抽取。

編輯: Drawable.createFomStream()來Drawable.createFromStream()

相關問題