android - 如何从内部存储中选择图像并将其插入到 SQLite 中?

标签 android image sqlite gallery storage

当用户点击我的应用程序中的按钮时,他必须能够从内部存储(SD 卡或平板电脑/手机内存)中选择图像。然后,我希望将此图像存储在 SQLite 数据库中。

于是就有了三个问题:

  • 我如何向用户显示图库或文件资源管理器,以便他可以导航和选择图片?
  • 应用如何知道选择了哪张图片?
  • 我的应用程序如何将图像存储在数据库中(BLOB 数据)?

最佳答案

好吧,正如 Lingviston 已经指出的那样。您可以实现从 here 的图库中挑选图像.

至于存储图像,我将稍微编辑一下链接中的代码。

取而代之的是:

ImageView imageView = (ImageView) findViewById(R.id.imgView);
        imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath));

我要将选定的图像存储在 Bitmap 中。

ImageView imageView = (ImageView) findViewById(R.id.imgView);
Bitmap mBitmap = BitmapFactory.decodeFile(picturePath);
        imageView.setImageBitmap(mBitmap);

现在要在 android 中存储为 BLOB 类型,您需要将位图转换为字节,然后将字节数组存储在 sqlite 数据库中。

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

现在你只需要通过imageInByte来存储到SQLite数据库中。

附带说明一下,这两个答案已经在整个互联网和 StackOverflow 上单独提供,您只需将 2 和 2 放在一起。请在发布问题之前尝试彻底搜索。

关于android - 如何从内部存储中选择图像并将其插入到 SQLite 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17127139/

相关文章:

java - 将android TCP客户端连接到java TCP服务器时出现异常

android - 在 Android 中通过推特使用 Digits

java - 网络 3 : websockets with SSL on Android

c# - 将图像绘制到更大的位图

c# - 使用表创建 c# 类。 Sqlite网

java - sqlite 查询中的无效字符?

android - 创建 Facebook 实时 react 动画叠加

javascript - 在 Javascript 中显示图像的条件

c++ - 在 QTextEdit 中放置图像的几种方法

sqlite - 与 SQLite 中的 HEX() 相反?