图像到SQLite而不是图库

时间:2015-06-10 15:40:02

标签: android image sqlite

我需要在Android应用程序中存储图像,它不应该出现在图库中。所以,我决定在应用程序中使用SQLite数据库' assets'文件夹,我会将imagepath存储到数据库中。问题是,如果没有进入SDCard,那么我如何获得imagepath?或者有没有办法可以隐藏我的应用程序捕获的图像出现在图库中。下面是我目前用于将图像存储在外部目录中的代码。

photo = new File(Environment.getExternalStoragePublicDirectory(Environment .DIRECTORY_PICTURES), imageName); 
//imageName=current timestamp

1 个答案:

答案 0 :(得分:0)

我正在使用此方法将图像保存到内部存储中(并将返回的路径保存到sqlite中)

    private String saveToInternalStorage(Bitmap bitmapImage, String filename){
    ContextWrapper cw = new ContextWrapper(getApplicationContext());
    // path to /data/data/yourapp/app_data/imageDir
    File directory = cw.getDir("imageDir", Context.MODE_PRIVATE);
    Log.d("dir", directory.toString());
    // Create imageDir
    File mypath=new File(directory,filename);
    Log.d("path", mypath.toString());

    FileOutputStream fos = null;
    try {

        fos = new FileOutputStream(mypath);

        // Use the compress method on the BitMap object to write image to the OutputStream
        bitmapImage.compress(Bitmap.CompressFormat.PNG, 100, fos);
        fos.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
    Log.d("ingesteld path", directory.getAbsolutePath());
    return directory.getAbsolutePath();
}

使用以下方式加载图像:

private void loadImageFromStorage(String path, String name)
{
    try {
        File f=new File(path, name);
        Bitmap b = BitmapFactory.decodeStream(new FileInputStream(f));

        // Do something with your bitmap
    }
    catch (FileNotFoundException e)
    {
        e.printStackTrace();
    }

}

希望这有用。