我想在drawable资源目录中获取某些文件名的列表(在运行时,不使用XML)。我想,我需要将某些文件与其他文件区分开来。所以...
* RES /抽拉-HDPI / mysubdir
- x-one.png
- one.png
- x-two.png
- two.png
- x-three.png
- three.png
*
我想将x-*.png
个文件名放入List<String>
。这可能吗?
借用另一个问题中的一些代码,我可以得到所有的drawables,但我没有看到以有意义的方式区分彼此的方法。
private void getDrawableResources() {
final R.drawable drawableResources = new R.drawable();
final Class<R.drawable> drawableClass = R.drawable.class;
final Field[] fields = drawableClass.getDeclaredFields();
final List<Integer> resourceIdList = new ArrayList<Integer>();
for (int i = 0, max = fields.length; i < max; i++) {
final int resourceId;
try {
resourceId = fields[i].getInt(drawableResources);
resourceIdList.add(resourceId);
}
catch (Exception e) {
continue;
}
}
Resources resources = this.getActivity().getResources();
for (int i = 0; i < resourceIdList.size(); i++) {
Drawable drawable = resources.getDrawable(resourceIdList.get(i));
resourceIdList.get(i) + "): " + drawable.toString());
}
}
答案 0 :(得分:1)
资源目录不支持子目录。
答案 1 :(得分:1)
在获取目录中的文件列表时使用FileNameFilter。
File dir = new File(dirLocation);
if(dir.exists() && dir.isDirectory())
{
File[] files = dir.listFiles(new FilenameFilter()
{
public boolean accept(File dir, String name)
{
return name.contains("X-");
}
});
}