我可以从SD卡获取图像并将其存储在应用程序数据库中吗? 这个想法在我的申请中是否有效?
提前致谢!!
此致
答案 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 ......