galaxy tab:在SD卡问题上保存照片

时间:2011-07-25 08:32:23

标签: android camera galaxy-tab

我尝试将照片保存到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)
        {
        } 

问候,彼得。

3 个答案:

答案 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。