将图像名称从相机保存到sqlite

时间:2012-02-08 05:24:49

标签: android sqlite save image

对不起,我是这里的新手。我有一个方法startCamera,如下所示:

public void startCamera() 
{

        Cursor c=helper.getById(almagId);
        c.moveToFirst();    
        fileName = helper.getKdStore(c)+ waktu + ".jpg";         
        Log.d("ANDRO_CAMERA", "Starting camera on the phone...");
        //String fileName = "testphoto.jpg";
        ContentValues values = new ContentValues();
        values.put(MediaStore.Images.Media.TITLE, fileName);
        values.put(MediaStore.Images.Media.DESCRIPTION,"Image capture by camera");
        values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
        imageUri = getContentResolver().insert(
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
        intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
        startActivityForResult(intent, IMAGE_CAPTURE);
        //return intent;
}

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{
       if (requestCode == IMAGE_CAPTURE) 
        {
            if (resultCode == RESULT_OK)
            {
                Log.d("ANDRO_CAMERA","Picture taken!!!");
                imageView.setImageURI(imageUri);

            }
        }
    }

然后我在Dbhelper中使用方法insertImage,就像这样

public void insertPicture(String image1,String image2,String image3){

    //waktu = new Date().toString();
    ContentValues im = new ContentValues();
    //im.put("kdstore", kdstore);
    im.put("image1", image1);
    im.put("image2", image2);
    im.put("image3", image3);

    System.out.println();
    getWritableDatabase().insert("image", "name", im);
}

我想在sqlite中按名称保存图片,以便稍后可以将它们检索出来。

2 个答案:

答案 0 :(得分:2)

正如Jox Traex所说,没有必要将图像存储在数据库中。如果只存储图像路径,那么将很容易。然后只从同一路径检索图像。你可以参考一些与样品相关的代码

  MimeBodyPart attachmentPart = new MimeBodyPart();
    FileDataSource fileDataSource = new FileDataSource(path_img) {
        @Override
        public String getContentType() {
            return "image/jpg";
        }
    };
    attachmentPart.setDataHandler(new DataHandler(fileDataSource));
    attachmentPart.setFileName("image.jpg");

答案 1 :(得分:1)

人们在哪里获得您的想法... 为什么您会将图片插入数据库吗?只需存储文件在数据库中的位置的链接......

虽然数据库提供blob选项,但你肯定不想一直这样做......它会很混乱。探索其他替代方案,停止对解决方案如此黑白。