【发布时间】:2011-12-12 06:50:12
【问题描述】:
我的 android 代码遇到了一些奇怪的问题, 我在 Bitmap 变量中有一个图像,并希望将该文件保存到 SD 卡。 我的代码如下,
Bitmap IMAGE // Loaded from internet servers.;
try {
File _sdCard = Environment.getExternalStorageDirectory();
File _picDir = new File(_sdCard, "MyDirectory");
_picDir.mkdirs();
File _picFile = new File(_picDir, "MyImage.jpg");
FileOutputStream _fos = new FileOutputStream(_picFile);
IMAGE.compress(Bitmap.CompressFormat.JPEG, 100, _fos);
_fos.flush();
_fos.close();
Toast.makeText(this, "Image Downloaded", 7000).show();
} catch (Exception ex) {
ex.printStackTrace();
Toast.makeText(this, ex.getMessage(), 7000).show();
}
我使用 Sony Experia Arc 作为我的测试设备,当手机连接到我的电脑时,代码运行良好,它可以存储图像并显示在图库中。但是当我断开手机与电脑的连接并测试应用程序时,它并没有保存图片,也没有显示任何异常。
【问题讨论】:
-
您是否在清单文件中添加了使用权限来写入外部存储。
-
这可能会产生异常,但很好。 OP,logcat 输出中是否有任何有用的消息?
-
顺便说一句,次要风格 nit:变量名中以 '_' 开头的那些不会增加任何可读性。我知道它们有时会在其他语言中使用,但我不会在 Java 中使用它们。