【问题标题】:keeping images in a categorized way in android drawable folder and how to access them将图像以分类方式保存在 android drawable 文件夹中以及如何访问它们
【发布时间】:2017-02-25 04:53:44
【问题描述】:

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

  • Students_Images_Folder
  • Teachers_Images_Folder
  • Parents_Images_Folder 等

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

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

【问题讨论】:

    标签: android android-studio android-drawable android-database android-project-template


    【解决方案1】:

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

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

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

    你也可以在android中创建assets文件夹,here你可以看到如何在android studio中创建assets文件夹。

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

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

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

    try 
    {
    
        InputStream ims = getAssets().open("student/st_img.jpg");
    
        Drawable d = Drawable.createFromStream(ims, null);
    
        mImage.setImageDrawable(d);
        ims .close();
    }
    catch(IOException ex) 
    {
        return;
    }
    

    【讨论】:

    • 感谢您的回答,但我在某处读到数据库会降低效率?这是真的吗?
    【解决方案2】:

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

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

    或此博客:Android: Multiple Resource Folders

    【讨论】:

      【解决方案3】:

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

      但您可以在每个类别的 imgaes 名称开头添加前缀,例如:st_image_name 用于学生图像

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-25
        • 1970-01-01
        • 2016-07-11
        • 1970-01-01
        • 2016-04-09
        • 2018-06-12
        相关资源
        最近更新 更多