Android 如何从具有多个文件夹的资源创建id映像数组
我在资产中有许多文件夹和图像,例如:“folder1/img1.jpg,img2.jpg…img15.jpg;folder2/img1.jpg,img2.jpg…img2.jpg;…”。我有一个列表视图,其中包含AssetManager资产中所有文件夹的名称,当OnClickItem时,我将从单击的项目(选定文件夹)加载所有图像。因为我在GitHub上使用代码“Curl Page”,所以我需要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
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();
}