如何将avd中的sdcard图像存储到android中的数据库?

时间:2011-05-17 03:57:31

标签: java android sqlite

我是Android新手。我刚刚在Android 2.1中创建了一个带有256 MB android-SD卡的AVD。我已经插入了两张图片。我使用DDMS透视图完成了这项工作。现在,图像存储在SDcard的DCIM文件夹中的文件夹100ANDRO中。现在我想创建一个应用程序,允许用户通过浏览文件夹选择图像,并需要将相应的图像保存到数据库android-sqlite。

有人可以帮我找到合适的方法吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

我找到了一种方法。

我为UPLOAD和我设置的点击操作创建了一个按钮。

    upload.setOnClickListener(new View.OnClickListener()
    {
        public void onClick(View v) {
            Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
            photoPickerIntent.setType("image/*");
            startActivityForResult(photoPickerIntent, 1);

        }
    });

我已经将此方法与下面的同一课程一起覆盖。

  @Override
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
    case 1:
     {
      if (resultCode == RESULT_OK)
      {
        Uri photoUri = data.getData();
        if (photoUri != null)
        {
        try {
              String[] filePathColumn = {MediaStore.Images.Media.DATA};
              Cursor cursor = getContentResolver().query(photoUri, filePathColumn, null, null, null); 
         cursor.moveToFirst();
     int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
     String filePath = cursor.getString(columnIndex);
     cursor.close();
     Bitmap bitmap = BitmapFactory.decodeFile(filePath);
     imgView.setImageBitmap(bitmap);
     int size = bitmap.getWidth() * bitmap.getHeight();
     ByteArrayOutputStream out = new ByteArrayOutputStream(size);
     bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
     try {
     out.flush();
     out.close();
     } catch (IOException e) {
     e.printStackTrace();}
     String bb = out.toString();
     byte[] x = out.toByteArray();
     image_value.setTag(x);
     image_value.setText(filePath);
     }catch(Exception e)
      {}
      }
    }
    }

此处image_value表示xml文件中的隐藏文本视图。 我已将图像位置和字节的值作为文本视图的值和标记传递。 后来我将这些字节保存到数据库中供以后显示。工作正常。

感谢所有人。