我尝试将照片保存到SD卡和htc设备上都可以。我在SD卡上看到了我的照片,打开时我看到了我的照片。但是当我在galaxy选项卡上尝试它时,照片被保存但是当我打开这张照片时我只看到黑屏。可以告诉我们如何解决它吗?
我的代码
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)
{
}
问候,彼得。
答案 0 :(得分:1)
是的,这是Galaxy Tab本身的问题我认为如果图像不在默认图像文件夹中就无法查看,如果您将SDCard安装在PC上,那么您可以轻松查看这些图像。
所以总的想法是你的图像没有被破坏,只是Galaxy Tab的问题
答案 1 :(得分:1)
我真的不知道为什么,但这段代码对我有用。也许你应该使用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();
}
答案 2 :(得分:0)
我猜你的代码正在抛出空指针异常,你正在基本上处理catch块而没有做任何事情来处理它。看看它。可以使用Enviroment.getEternalStorageDirectory()获取sdcard目录的root。