我试着把照片存到sd卡和HTC设备上都没问题。我看到我的照片在sd卡上,当打开我看到我的照片。但是当我在galaxy tab上尝试时,照片被保存了,但是当我打开这张照片时,我只看到黑屏。有谁能告诉我怎么修理它吗?
我的代码 tempBMP.compress(Bitmap.CompressFormat.JPEG, 85, stream);
log("stream3");
File saveDir=null;
String filename="";
byte[] byteArray = stream.toByteArray();
try
{
if (!saveDir.exists())
{
saveDir.mkdirs();
}
FileOutputStream os = new FileOutputStream(String.format("/sdcard/ "+""+filename, System.currentTimeMillis()));
os.write(byteArray);
os.close();
}
catch (Exception e)
{
}
问候,彼得。
我不知道为什么,但是这段代码对我有用。也许你应该使用Enviroment.getExternalStorageDirectory()
而不是使用"/sdcard/"。试试。
File sdCard = Environment.getExternalStorageDirectory();
File dir = new File (sdCard.getAbsolutePath());
dir.mkdirs();
File out = new File(dir,filename);
try {
out.createNewFile();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
DataOutputStream fo = null;
try {
fo = new DataOutputStream( new FileOutputStream(out));
//write what you want to fo
fo.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
是的,这是Galaxy Tab本身的问题,我认为如果图像不在默认图像文件夹中,则无法查看图像,如果您将sd卡挂载到PC上,则可以轻松查看这些图像。
所以总体的想法是你的图像没有损坏这只是Galaxy Tab的问题
我猜你的代码是抛出空指针异常,你在catch块一般处理,不做任何事情来处理它。看看吧。可以使用environment . geteternalstoragedirectory()获取sd卡目录的根目录