对不起,我是这里的新手。我有一个方法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中按名称保存图片,以便稍后可以将它们检索出来。
答案 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选项,但你肯定不想一直这样做......它会很混乱。探索其他替代方案,停止对解决方案如此黑白。