如何组织数百个矢量绘制?



我正在制作一个应用程序,它将有数百个不同的图标(作为矢量绘制)供用户选择。组织、保存和引用它们的最佳方法是什么?

  1. 最好将可绘制的名称(R.id.icon)存储在数据库中,然后从那里调用它们?构建一个巨大的数组列表似乎是不对的。如果是这样,有没有一种方法可以读取drawables文件夹中所有drawables的名称,而不是一个接一个地键入它们?
  2. 我真的只是重要的100+矢量图像到可绘制的文件夹?是否有办法将它们与我的应用程序中的其他drawables分开?

你不应该把它们放在数据库中,你必须在静态int数组中加载它们,你可以在数据库中保存图标的位置或优先级。直接将它们保存在数据库中的问题是,当你稍后更新应用程序时,它会给你带来很多麻烦

我在这里找到了一个答案:从资源对象中检索所有可绘制的资源

使用Field数组查找所有可绘制对象并将带有"icon "在资源名称中:

public ArrayList<Integer> loadDrawables() { 
final Field[] drawables = R.drawable.class.getFields();
ArrayList<Integer> fieldOfIcons = new ArrayList<Integer>();
for (Field field : drawables) {
if (field.getName().contains("icon")) { //Gets all drawables with "icon" in the name and returns resource identifier
fieldOfIcons.add(getResources().getIdentifier(field.getName(),"drawable", getContext().getPackageName()));
}
}
return fieldOfIcons;

相关内容

最新更新