2013-05-13 245 views
1

我创建中,你从一个地方x复制图像位置y Android应用程序。复制完成后,我想看到ImageView中的图片。 我知道图片的位置,但无论我怎么努力,我不能创建它的bitmap对象。BitmapFactory.decodeFile()返回null

这是导致我的问题,该生产线是这样的:

BitmapFactory.decodeFile(dir+s); 

dir = getCacheDir().getAbsolutePath()+"/images/";

s = file name (eg. 1275123123.jpg)

如果我创建一个具有相同路径的File对象,并调用f.isFile(),它返回true

开口Android或窗口图像是没有问题的。

+0

什么'真正的路径? – Blackbelt 2013-05-13 21:01:18

+0

你检查http://stackoverflow.com/questions/6013029/android-decodefile-always-returns-null-for-file-in-internal-storage – Ryan 2013-05-13 21:17:22

+0

@blackbelt /data/data/net.hath.snapcap/cache /images/file.jpg – MartinHaTh 2013-05-13 21:17:28

回答

2

我有一个类似的问题,什么终于解决它是创造FileInputStream(...)和流进行解码。这是我使用的代码,我改变了它适合你的情况:

File location = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+ "/images"); 
File dest = new File(location, fileName + ".JPG"); 
FileInputStream fis; 
fis = new FileInputStream(dest); 
Bitmap img = BitmapFactory.decodeStream(fis); 
+0

我得到FileNotFoundException没有创建FIS。虽然File对象很好。请帮忙 – Husyn 2013-10-07 07:06:01

+0

不需要这样做。 'decodeFile'调用'decodeStream'本身: http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.4.2_r1/android/graphics/BitmapFactory.java# BitmapFactory.decodeFile%28java.lang.String 29% – 2014-02-22 00:46:45

5

你没忘了加上SD卡的访问权限READ_EXTERNAL_STORAGE和/或WRITE_EXTERNAL_STORAGE?