在sqlite数据库中寻址图像

时间:2015-11-19 08:01:15

标签: android sqlite

我注意到在数据库中使用Blob不是显示图像的好方法。 我的图片大小不到100KB。 我怎样才能在sqlite数据库中解决它们? 我应该把它们放在哪里?

这是我的db:

这是我的数据库类:

public class database extends SQLiteOpenHelper {

    public final String   path = "data/data/com.example.booktest/databases/";
    public final String   Name = "database";
    public SQLiteDatabase mydb;
    private final Context mycontext;

    public database(Context context) {
        super(context, "database", null, 1);
        mycontext = context;    
    }

    @Override
    public void onCreate(SQLiteDatabase arg0) {...}

    @Override
    public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {...}


    public void useable() {
            boolean checkdb = checkdb();
            if (checkdb) {
            } else {
                this.getReadableDatabase();
                try {
                copydatabase();
            }
            catch (IOException e) {}

        }

    }


    public void open() {...}


    @Override
    public void close() {... }


    public boolean checkdb() {...}


    public void copydatabase() throws IOException {...}

2 个答案:

答案 0 :(得分:0)

只需下载SD卡中的图像,然后将目录保存在SQLite表中。获取路径并在需要的地方检索图像。

String path = imageFile.getAbsolutePath();
Bitmap bitmap = BitmapFactory.decodeFile(path);
imgView.setImageBitmap(bitmap);

答案 1 :(得分:0)

作为一种典型的方式,开发人员通常会将图像保存在应用程序自己的私人目录中。

/data/data/app_id/files

因此,您也应该遵循这种方式。因此,首先为这些图像创建一个专用目录,称为images并将所有图像存储在那里。

在数据库方面,您只需保存其名称,例如photo1.jpg

备注:

  • 要获取对您的私人目录的引用,请使用您的活动的getFilesDir()方法。

  • 要获取图像的绝对地址,您可能需要使用以下代码:

    File privateDir = getFilesDir();
    File imagesDir = new File(privateDir, "images");
    File image = new File(imagesDir, "photo1.jpg");