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

Uni*_*nii 1 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);
Run Code Online (Sandbox Code Playgroud)

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

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

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

我的问题是:我怎样才能得到不同的图片?

Vis*_*nan 5

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

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

您可以阅读 WORLD_WRITEABLE