知道为什么这不适用于运行 Android API 1.5 的 HTC Hero 吗?
private static void Save_to_SD (Bitmap bm, String image_name){
String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
String meteoDirectory_path = extStorageDirectory + "/Weather_Belgium";
OutputStream outStream = null;
File file = new File(meteoDirectory_path, "/"+ image_name);
try {
outStream = new FileOutputStream(file);
bm.compress(Bitmap.CompressFormat.PNG, 100, outStream);
outStream.flush();
outStream.close();
Log.i("Hub", "OK, Image Saved to SD");
Log.i("Hub", "height = "+ bm.getHeight() + ", width = " + bm.getWidth());
} catch (FileNotFoundException e) {
e.printStackTrace();
Log.i("Hub", "FileNotFoundException: "+ e.toString());
} catch (IOException e) {
e.printStackTrace();
Log.i("Hub", "IOException: "+ e.toString());
}
}
Logcat 没有显示任何错误,我的图像通常为 340x380:
12-19 12:06:41.035: INFO/Hub(1762): 目录存在
12-19 12:06:41.035: 信息/集线器 (1762): isDirectory = true
12-19 12:06:41.045:INFO/Hub(1762):好的,图像已保存到 SD
12-19 12:06:41.045:信息/集线器(1762):高度= 340,宽度= 380
12-19 12:06:41.055:INFO/Hub(1762):好的,图像已保存到 SD
然后,当我浏览 SD 卡并查看保存的图像时,这些图像被保存为“无效图像”48 八位字节图像!?
发生了什么 ?
显现:
<uses-sdk android:minSdkVersion="3"
android:targetSdkVersion="4" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
编辑 :
看起来这段代码对于 PNG、JPG 图像可以正常工作,但问题与我的图像最初是 GIF 图像(从网上下载)有关。