Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android sqlite数据库中的图像寻址_Android_Sqlite - Fatal编程技术网

Android sqlite数据库中的图像寻址

Android sqlite数据库中的图像寻址,android,sqlite,Android,Sqlite,我注意到在数据库中使用Blob并不是显示图像的好方法。 我的图像大小小于100KB。 我如何在sqlite数据库中处理它们? 我应该把它们放在哪里 这是我的数据库: 这是我的数据库类: public class database extends SQLiteOpenHelper { public final String path = "data/data/com.example.booktest/databases/"; public final String Nam

我注意到在数据库中使用Blob并不是显示图像的好方法。 我的图像大小小于100KB。 我如何在sqlite数据库中处理它们? 我应该把它们放在哪里

这是我的数据库:

这是我的数据库类:

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 {...}

只需下载sd卡中的图像并将目录保存在
SQLite
表中即可。获取路径并在需要时检索图像

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

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

/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");
    

实际上,在数据库中存储100KB的图像。@CL.您能告诉我应该使用什么方法吗?如何将其分配给ImageView我应该使用什么方法?