Android 如何从具有多个文件夹的资源创建id映像数组

Android 如何从具有多个文件夹的资源创建id映像数组,android,android-view,Android,Android View,我在资产中有许多文件夹和图像,例如:“folder1/img1.jpg,img2.jpg…img15.jpg;folder2/img1.jpg,img2.jpg…img2.jpg;…”。我有一个列表视图,其中包含AssetManager资产中所有文件夹的名称,当OnClickItem时,我将从单击的项目(选定文件夹)加载所有图像。因为我在GitHub上使用代码“Curl Page”,所以我需要ID数组来加载每个文件夹中的所有图像不要使用简单数组来绘制,例如: private int[]midse

我在资产中有许多文件夹和图像,例如:“folder1/img1.jpg,img2.jpg…img15.jpg;folder2/img1.jpg,img2.jpg…img2.jpg;…”。我有一个列表视图,其中包含AssetManager资产中所有文件夹的名称,当OnClickItem时,我将从单击的项目(选定文件夹)加载所有图像。因为我在GitHub上使用代码“Curl Page”,所以我需要ID数组来加载每个文件夹中的所有图像不要使用简单数组来绘制,例如:

private int[]midselectedfolder={R.drawable.img1,R.drawable.img2,…R.drawable.img15}

然后我加载图像:

Drawable d=getResources().getDrawable(midselectfolder[index])


但我不知道如何计算每个文件夹中的数字图像,然后获取所有ID图像,从每个文件夹创建一个数组,不要通过复制和粘贴图像名称来输入所有资源上面的示例相同,因为每个文件夹的图像数不同

您必须创建服装列表视图。并重写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;
    }

您可以尝试使用getIdentifier按名称获取id

下面您将看到示例代码:

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

下面的代码将列出驻留在“目录”中的文件

试试看{
AssetManager am=this.getAssets();
字符串str[]=getAssets().list(“目录名称”);
对于(int i=0;i
您只需要创建特定目录的数组,并在其中添加文件名。您还可以为此创建自定义类。在我的示例中,如果文件名以JPG结尾,将从中提取drawable


编辑:Drawable.createFomStream()到Drawable.createFromStream()

标记为
低质量
+1个好问题。从代码片段和描述中可以清楚地看到您试图完成的任务?你能给一个链接到你正在使用的“卷曲页面”项目吗?一点解释都没有坏处:)
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();
}