вкладка galaxy: сохранение фотографии на SD-карте - PullRequest
0 голосов
/ 25 июля 2011

Я попытался сохранить фотографию на 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 ]

1 голос
/ 25 июля 2011

Я не знаю почему, но этот код работает для меня. Возможно, вам следует использовать 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();
            }
1 голос
/ 25 июля 2011

Да, это проблема самой Galaxy Tab. Я думаю, что изображение не может быть просмотрено, если его нет в папке с изображениями по умолчанию, если вы смонтируете SDCard на ПК, то вы можете легко просматривать эти изображения.

Такобщая идея заключается в том, что ваше изображение не повреждено, просто проблема с Galaxy Tab

0 голосов
/ 25 июля 2011

Я полагаю, ваш код генерирует исключение нулевого указателя, которое вы обрабатываете в блоке catch в целом, и не предпринимает никаких действий для его обработки.Посмотри на это.Может использовать Enviroment.getEternalStorageDirectory () для получения root для каталога sdcard.

...