我不知道如何打开已保存的图像并将其显示在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 / ...我检查了它。
我的问题是:我怎样才能得到显示的图像?
答案 0 :(得分:5)
实际上,您无法将相机上的图片直接存储在应用程序内存中,您应该将其写入sdcard
并将其复制到您的空间并删除原件。因为相机是另一个应用程序,没有权限写入您的应用程序存储空间。如果您具有root权限,则可以检查。
如果您为相机意图指定了应用程序内存,它将始终返回NULL
您可以阅读WORLD_WRITEABLE