【问题标题】:Android SQLite image StorageAndroid SQLite 图像存储
【发布时间】:2016-07-22 15:40:30
【问题描述】:

我正在制作一个测验应用程序,它要求我能够从数据库中获取图像 BLOB 或存储在数据库中的图像路径。但是我环顾四周,很多人建议使用文件路径,问题是如果我使用文件路径方法,我不知道在哪里存储图像。

我是否将其存储在应用程序中的某个位置,例如资源文件夹?很多示例都使用 SD 卡,但是否可以将图像从数据库保存到 SD 卡,如果可以肯定这意味着我有两个图像一个在数据库中,一个在 SD 卡上。

哪里是存储测验应用程序图像的最佳位置,我可以在任何手机上使用该应用程序并且可以访问所述图像?以及如何?

提前致谢。

【问题讨论】:

    标签: android image sqlite filepath


    【解决方案1】:

    图片存储必须在某个目录下,图片对应的路径必须存储在数据库中。

    有时您会从一个活动中访问您的图像,然后是另一个,在这种情况下,您只需将图像的路径从活动一传递到活动二,然后从目录中检索图像以显示在活动二。 当图像的大小开始增加时,从数据库存储和加载图像可能会变得很痛苦。 For learning how to store images, Give an eye to this

    代码示例

    private void SaveImage(Bitmap finalBitmap) {
    
    String root = Environment.getExternalStorageDirectory().toString();
    File myDir = new File(root + "/saved_images");    
    myDir.mkdirs();
    Random generator = new Random();
    int n = 10000;
    n = generator.nextInt(n);
    String fname = "Image-"+ n +".jpg";
    File file = new File (myDir, fname);
    if (file.exists ()) file.delete (); 
    try {
           FileOutputStream out = new FileOutputStream(file);
           finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
           out.flush();
           out.close();
    
    } catch (Exception e) {
           e.printStackTrace();
    }
    

    }

    在上面的代码中,行

     Environment.getExternalStorageDirectory()
    

    指的是 android/data 文件夹。您可以在任何级别创建文件夹,例如 android/data/folderone/folderTwo/folderThree .

    注意: 但是,您需要首先从服务器获取图像并将它们存储在设备中。如果您正在考虑将图像与应用程序捆绑在一起,请将所有res/drawable 文件夹中的图像。(如果不涉及 Web 服务器功能)


    【讨论】:

    • 我假设您的意思是手机中的目录而不是应用程序本身,在这种情况下,我如何首先将图像存储到目录而不拖动图像。
    • 您必须知道,在 android/data/ 的文件资源管理器中有某些文件夹。您可以在此处创建自己的目录,并可以存储特定于您的应用的图像。查看答案中的链接
    • 要将图像保存到目录中,我首先需要将图像保存在任何电话都可以访问的位置,例如数据库?在这种情况下,如果将其保存到数据库中,为什么还要保存两次?
    • 在数据库中,您将只存储路径,而不是图像,假设您的图像在文件夹 android/data/yourappname/images 中,然后在数据库的第三列中,如上面的图片,您将存储 android/data/yourappname/images ,而不是图片本身。
    • 我明白了,但是我首先如何通过代码将图像保存到 android/data/。
    猜你喜欢
    • 1970-01-01
    • 2012-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-26
    • 1970-01-01
    • 2021-04-04
    • 1970-01-01
    相关资源
    最近更新 更多