0

我尝试将照片保存到 sd 卡和 HTC 设备上一切正常。我在 sd 卡上看到我的照片,打开时我看到我的照片。但是当我在银河选项卡上尝试时,照片已保存,但当我打开这张照片时,我只看到黑屏。任何人都可以告诉如何解决它?

我的代码

 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)
        {
        } 

问候,彼得。

4

3 回答 3

1

是的,这就是 Galaxy Tab 本身的问题,我认为如果图像不在默认图像文件夹中,则无法查看图像,如果将 SDCard 安装在 PC 上,则可以轻松查看这些图像。

所以总体思路是您的图像没有损坏,这只是 Galaxy Tab 的问题

于 2011-07-25T09:09:45.927 回答
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();
            }
于 2011-07-25T09:13:14.073 回答
0

我猜你的代码抛出了空指针异常,你通常在 catch 块中处理它,而不做任何处理它。看看它。可以使用 Enviroment.getEternalStorageDirectory() 获取 sdcard 目录的 root。

于 2011-07-25T09:15:59.467 回答