1

我正在创建一个 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 中打开图像都不是问题。

4

3 回答 3

7

您是否忘记添加 SD 卡访问权限 READ_EXTERNAL_STORAGE 和/或 WRITE_EXTERNAL_STORAGE ?

于 2014-09-17T11:37:54.337 回答
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);
于 2013-05-13T22:20:58.733 回答
-1

你必须添加

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

您清单的权限。

并且请不要忘记向用户请求运行时权限。

于 2020-05-18T15:55:37.410 回答