在 android 可绘制文件夹中以分类方式保存图像以及如何访问它们

keeping images in a categorized way in android drawable folder and how to access them

我有近 1000 张不同类别的图像,例如

我想在我的 android 项目中继续导入这些图像 类别 而不是 mdpi、xdpi、hdpi 等。有没有办法让它们分类而不合并到drawable中。

我应该去数据库吗?我读到数据库不合适,因为它会降低效率。欢迎任何解决方案。感谢您花时间回答我的愚蠢问题。

AFAIK,res文件夹不能添加子目录,这样会导致资源编译失败!

但您可以在每个类别的图像名称开头添加前缀,例如:st_image_name for students images

您可以在您的资源目录中创建子目录,并让您的构建系统使用一小段 Gradle 脚本。

阅读此处了解更多信息:Can the Android Layout folder contain subfolders?

或此处的博客:Android: Multiple Resource Folders

首先,您应该将所有图像添加到具有唯一名称的可绘制文件夹中,当然还有一些前缀,如学生的 st、教师的 tr 和家长的 pr。

其次,您可以创建包含三个表的数据库,以将图像的名称存储到单独的类别中。

之后,您可以从数据库中明智地检索图像类别,here 是处理文件名中的资源 ID 的代码。

您还可以在 android 中创建资产文件夹,here 您可以在 android studio 中查看如何创建资产文件夹。

创建资产文件夹后,您可以根据学生、教师和家长等类别创建子目录。

然后将图像放入这些目录中。

最后从资产加载图像。要从资产的子目录加载图像,请执行以下代码

try 
{

    InputStream ims = getAssets().open("student/st_img.jpg");

    Drawable d = Drawable.createFromStream(ims, null);

    mImage.setImageDrawable(d);
    ims .close();
}
catch(IOException ex) 
{
    return;
}