如何在sqlite数据库中保存捕获的图像路径并检索它

时间:2015-10-20 15:18:46

标签: android sqlite android-listview

我还是这个Android Studio的新手。我一直在寻找适合我当前应用程序的编码。不幸的是,我找不到一个我能理解或与我的应用程序相关的内容。

我想创建一个捕获图像的相机按钮,图像的路径将保存在sqlite数据库中。在同一活动中,我想以ListView

的形式显示图片

现在我只能在MainActivity内调用相机功能。

public void btnAmbilGambar (View view) {
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    File file = new File(Environment.getExternalStorageDirectory(), "MyPhoto.jpg");
    OutputFileUri = Uri.fromFile(file);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, OutputFileUri);
    startActivityForResult(intent, takePic);
}

@Override
protected void onActivityResult (int requestCode, int resultCode, Intent data) {
    if (requestCode == takePic && resultCode==RESULT_OK){
        Message.message(this, OutputFileUri.toString());
    }

}

以下编码是在我的数据库中插入图像的方法。

public long insert(Bitmap img ) {

    SQLiteDatabase db=helper.getWritableDatabase();
    byte[] data = getBitmapAsByteArray(img); // this is a function
    ContentValues value=new ContentValues();
    value.put("pic",data);

    long a= db.insert("mypic", null, value);

    return a;
}

public static byte[] getBitmapAsByteArray(Bitmap bitmap) {

    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.PNG, 0, outputStream);
    return outputStream.toByteArray();
}

当我运行应用程序时,没有错误,但我不知道如何将图像保存在数据库中。我需要编码如何调用insert()方法,然后如何以ListView的形式显示图像。如果有人可以向我展示一个可以完成我的编码的编码样本将非常感激。

0 个答案:

没有答案