从SD卡获取图像并将其存储在Android数据库中

时间:2011-04-07 05:34:49

标签: android database

我可以从SD卡获取图像并将其存储在应用程序数据库中吗? 这个想法在我的申请中是否有效?

提前致谢!!

此致

1 个答案:

答案 0 :(得分:1)

是的,您可以从SD卡中获取图像并将其存储在sqlite数据库中,我们已经完成了,但它对您的设备来说太昂贵了......所以要小心,

通过调用此

来调用图像选择器意图
Intent i = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
                    startActivityForResult(i, 12);

它将打开默认的图库选择器视图,当您选择一个图像时,您将在当前活动中返回,因此覆盖onActivityResult()并查找结果代码12。

在该代码中,您可以通过这些行获取光标

Cursor cursor = getContentResolver().query(selectedImage,
                    filePathColumn, null, null, null);
cursor.moveToFirst();

从该光标对象,您可以通过这些行获取图像的文件路径

 int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
 String filePath = cursor.getString(columnIndex);

这是位图对象

Bitmap bMap = BitmapFactory.decodeFile(filePath);

获取字节数组

ByteArrayOutputStream out = new ByteArrayOutputStream();

bMap.compress(Bitmap.CompressFormat.PNG, 100,out); 
byte[] imageArray = out.toByteArray();

现在您必须将imageArray存储为数据库中的blob。你已经完成了......别忘了在我得到解决方案的地方提到this post ......