如何显示保存在数据/数据中的拍摄照片/

时间:2014-02-14 11:04:58

标签: android bitmap android-camera

我不知道如何打开已保存的图像并将其显示在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方法(),我仍然有一个空位图。 文件存在于data / data / ...我检查了它。

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

1 个答案:

答案 0 :(得分:5)

实际上,您无法将相机上的图片直接存储在应用程序内存中,您应该将其写入sdcard并将其复制到您的空间并删除原件。因为相机是另一个应用程序,没有权限写入您的应用程序存储空间。如果您具有root权限,则可以检查。

如果您为相机意图指定了应用程序内存,它将始终返回NULL

您可以阅读WORLD_WRITEABLE