【问题标题】:How can I display taken picture saved in data/data/如何显示保存在 data/data/ 中的照片
【发布时间】:2014-02-14 11:04:57
【问题描述】:

我不知道如何打开保存的图像并将其显示到gridView中。

我打算拍照:

 Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    if (takePictureIntent.resolveActivity(getPackageManager()) != null && file != null) {
        takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
        startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);

文件保存在/data/data/package/files/... 但是当我尝试打开文件并创建位图时,它总是返回 null。

    try {
        is = this.getContentResolver().openInputStream(Uri.fromFile(f));
          } catch (FileNotFoundException e) {
          e.printStackTrace();
          }
        Bitmap bitmap = BitmapFactory.decodeStream(is);}

即使我使用 decodeFile method() 我仍然有一个空位图。 文件存在于 data/data/ ...我检查了它。

我的问题是:我怎样才能得到显示拍摄的图像?

【问题讨论】:

  • 意味着你想在你的应用程序中拍摄所有画廊照片是你的意思
  • 是的,我更喜欢将图片保存在 data\data 中而不是画廊中

标签: android bitmap android-camera


【解决方案1】:

其实你不能将相机拍到的图片直接存储在你的应用内存中,你应该将它写到sdcard并复制到你的空间并删除原来的。因为相机是另一个没有权限在您的应用程序存储空间上写入的应用程序。您可以检查您是否具有root权限。

如果您为相机 Intent 指定应用内存,它将始终返回 NULL

您可以通过WORLD_WRITEABLE阅读这篇文章

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-31
    • 2020-05-13
    • 1970-01-01
    • 1970-01-01
    • 2015-10-05
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多