我怎样才能将图像从手机内存上传到android sqlite数据库

时间:2015-04-30 13:34:29

标签: android sqlite android-listview

我正在尝试开发一个Android应用程序,其中有一个从手机内存上传图像的选项,然后它将显示在列表视图中,其中某些标题由用户提供。
我已经创建了它的布局,但我不知道如何实现这个概念。

我在LinearLayout中使用了一个EditText和一个Button来上传文件,并在另一个活动中使用ListView来显示图像

1 个答案:

答案 0 :(得分:1)

首先,您必须从手机内存中获取图像,例如“

Intent photoPickerIntent = new Intent(Intent.ACTION_GET_CONTENT);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, 1);
  Bitmap mBitmap = null;
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK)
    {
        Uri chosenImageUri = data.getData();


        mBitmap = Media.getBitmap(this.getContentResolver(), chosenImageUri);
        }
}

`您将以位图图像的形式获取图像。将此位图图像转换为ByteArray []:

ByteArrayOutputStream stream = new ByteArrayOutputStream();
mBitmap .compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();

然后在具有blob数据类型的Database中获取一列,然后在该列中插入此字节数组;

db.execSQL("create table Images(id integer, imageData blob);");

用于插入

ContentValues values = new ContentValues();
values.put("id", imageIdValue);
values.put("imageData ", byteArray);
database.insert("Image", null, values);

我希望这会对你有所帮助。