Android 安卓-什么&x27;将图像存储到SQLite的最佳方法是什么?

Android 安卓-什么&x27;将图像存储到SQLite的最佳方法是什么?,android,image,sqlite,Android,Image,Sqlite,我正在开发一个离线应用程序,但并没有从用户库中获得任何图片。 但是我想向用户显示我手动插入的图像 我能想到的唯一解决方案是将这些图像放入drawable,然后将其保存到sqlite数据库(我不知道如何保存)。这能做到吗 谢谢。如果您愿意将图像存储在可绘制文件夹中,您可以在数据库中存储对它们的引用。只需存储一个字符串,如com.example.yourapp:drawable/imagefilename并使用它显示图像,其中yourString包含数据库中的字符串 int imageResourc

我正在开发一个离线应用程序,但并没有从用户库中获得任何图片。 但是我想向用户显示我手动插入的图像

我能想到的唯一解决方案是将这些图像放入
drawable
,然后将其保存到sqlite数据库(我不知道如何保存)。这能做到吗


谢谢。

如果您愿意将图像存储在可绘制文件夹中,您可以在数据库中存储对它们的引用。只需存储一个字符串,如
com.example.yourapp:drawable/imagefilename
并使用它显示图像,其中
yourString
包含数据库中的字符串

int imageResource = this.getResources().getIdentifier(yourString, null, null);
yourimageview.setImageResource(imageResource);

如果愿意将图像存储在可绘制文件夹中,可以在数据库中存储对它们的引用。只需存储一个字符串,如
com.example.yourapp:drawable/imagefilename
并使用它显示图像,其中
yourString
包含数据库中的字符串

int imageResource = this.getResources().getIdentifier(yourString, null, null);
yourimageview.setImageResource(imageResource);

您可以为此使用insert blob

    public void insertImg(int id , Bitmap img ) {   


    byte[] data = getBitmapAsByteArray(img); // this is a function

    insertStatement_logo.bindLong(1, id);       
    insertStatement_logo.bindBlob(2, data);

    insertStatement_logo.executeInsert();
    insertStatement_logo.clearBindings() ;

}

 public static byte[] getBitmapAsByteArray(Bitmap bitmap) {
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    bitmap.compress(CompressFormat.PNG, 0, outputStream);       
    return outputStream.toByteArray();
}

您可以为此使用insert blob

    public void insertImg(int id , Bitmap img ) {   


    byte[] data = getBitmapAsByteArray(img); // this is a function

    insertStatement_logo.bindLong(1, id);       
    insertStatement_logo.bindBlob(2, data);

    insertStatement_logo.executeInsert();
    insertStatement_logo.clearBindings() ;

}

 public static byte[] getBitmapAsByteArray(Bitmap bitmap) {
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    bitmap.compress(CompressFormat.PNG, 0, outputStream);       
    return outputStream.toByteArray();
}

无法(轻松)将文件添加到可绘制文件夹。你必须将它们保存到SD卡中你可以创建的应用程序文件夹中。您可能还希望查看内容提供商以增加功能。我懂了。如果应用程序是在线应用程序呢?如果你正在将图像下载到设备上,它也是一样的。如果您只是显示一个页面,那么您可能需要查看WebView。您无法(轻松地)将文件添加到drawable文件夹。你必须将它们保存到SD卡中你可以创建的应用程序文件夹中。您可能还希望查看内容提供商以增加功能。我懂了。如果应用程序是在线应用程序呢?如果你正在将图像下载到设备上,它也是一样的。如果您只是显示一个页面,那么您可能需要查看WebView。