0

嗨,我对位于此处的位图和图片有疑问:

file:///mnt/sdcard/Android/data/com.dev.app/files/Pictures/20120924-092226.jpg

所以我有一个带有这个网址的字符串(文件存在!)

现在我需要一个位图,所以我这样做:

String str = "file:///mnt/sdcard/Android/data/com.dev.app/files/Pictures/20120924-092226.jpg";
Bitmap b = BitmapFactory.decodeFile(str);

但 b 始终为空。我不知道为什么。

编辑:我之前用这样的代码创建了文件:

String filename = DateFormat.format("yyyyMMdd-hhmmss",Calendar.getInstance().getTime()) + ".jpg";

Uri imageUri = helper.createImageDestinationUri(null, filename);

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(intent, requestCode);
4

1 回答 1

0

有两种可能

  1. 该文件的格式不正确,即虽然扩展名为 .jpg,但它不是 jpeg 文件。
  2. 无法加载文件。

您可以仔细查看 adb 日志以了解发生了什么……如果没有帮助,请尝试以下操作。

将文件添加到您的可绘制文件夹中,并在某些测试屏幕中使用它。如果显示文件,则文件格式正确,因此 android 无法加载文件。检查您的权限,并实际尝试首先使用 FileInputStream 或其他方式读取文件。

如果文件仍然没有显示,那么你可以确定格式是错误的。在这种情况下,只需尝试使用不同的图像文件。

希望能帮助到你...

于 2012-09-24T20:35:04.657 回答