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

ええ、それはギャラクシータブ自体の問題です。デフォルトの画像フォルダにない場合、画像を表示できないと思います。SDカードをPCにマウントすると、これらの画像を簡単に表示できます。

したがって、全体的な考え方は、画像が破損していないということです。GalaxyTabの問題だけです。

于 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ブロックで一般的に処理しているnullポインター例外をスローしていて、それを処理するために何もしていないと思います。それを見てください。Enviroment.getEternalStorageDirectory()を使用して、SDカードディレクトリのルートを取得できます。

于 2011-07-25T09:15:59.467 に答える