我正在创建一个Android应用程序,其中你从位置复制一个图像 x
位置 y
. 复制完成后,我想看看图片中的内容。ImageView
. 我知道图像的位置,但无论我怎么尝试,我都无法创建一个新的图像。bitmap
的对象。
导致我的问题的行是这样的。
BitmapFactory.decodeFile(dir+s);
dir = getCacheDir().getAbsolutePath()+"/images/";
s = file name (eg. 1275123123.jpg)
如果我创建一个 File
对象的路径相同,并调用 f.isFile()
,它返回 true
.
在android或windows中打开图像都不是问题。
你是不是忘记添加SD卡访问权限READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE?
我也遇到过类似的问题,最终解决的方法是创建了 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);
你必须添加
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
权限到你的清单上。
而且请不要忘记向用户申请运行时权限。