Изображение не сохранится на разных устройствах Android - PullRequest
0 голосов
/ 05 июля 2011

Я использую этот код для сохранения растрового изображения, снятого со снимка экрана:

try{
    String fname = "/Pictures/YourApp/YourPic.jpg";
    File path= Environment.getExternalStorageDirectory();
    File file = new File(path, fname);
    if (file.exists()) {
                Bitmap bitty = BitmapFactory.decodeFile(file.toString());
                    yourPlan.setImageBitmap(bitty); //ImageView
            }else{
                errorText.setText("If you can not see your image then free up some memory");
            }
        }catch(Exception e){
                errorText.setText("If you can not see your image then free up some memory");
        }

Он отлично работает на моем тестовом телефоне - Orange San Francisco на 2.1, но мне приходили электронные письма от пользователей, в которых сообщалось, что они получают сообщение об ошибке только при сохранении с достаточным пространством.

Они используют телефоны HTC и Samsung. Есть идеи?

1 Ответ

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

Во-первых, я хотел бы отметить, что отлов общего Exception e не является хорошей практикой кодирования. Во-вторых, оба сообщения, которые вы выводите пользователю, также бесполезны, так как не гарантируется, что ошибка связана с пробелом.

Я предполагаю, что ошибка происходит из-за несуществующего файла. Где вы сохраняете файл? Из фрагмента кода я вижу, что вы просто предполагаете, что файл существует. Если вы еще не сохранили файл после того, как сделали снимок экрана, это будет вашей проблемой. Вы открываете файл, который не существует, и ваше сообщение об ошибке создает ошибочное впечатление, что недостаточно места.

...