Android: проблемы с сохранением картинки на SD-карту после результата активности - PullRequest
0 голосов
/ 22 июня 2011

У меня две проблемы в моей программе: 1.После фотографирования вот что у меня есть для onActivityResult ():

        pictureTaken = (Bitmap) data.getExtras().get("data");
        ImageView im = (ImageView) findViewById(R.id.view);
        im.setImageBitmap(pictureTaken);

Отображается только миниатюра (плохое качество при отображении), и когда я сохраняю ее на SD-карту, это также маленькое изображение. Что мне нужно, это сохранить / отобразить его в полном разрешении / качестве. Что я могу изменить, чтобы добиться этого?

  1. Получение и отображение изображения, выбранного пользователем, работает:

    selectedImage = data.getData();
    ImageView im = (ImageView) findViewById(R.id.view);
    im.setImageURI(selectedImage);
    

Но при сохранении изображения, выбранного пользователем, оно вылетает здесь (найдено отладчиком):

...
File externalStorageFile = new File(dir, finalName);
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
//Error
resourceImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
byte b[] = bytes.toByteArray();
try {
...

Кроме того, является ли растровое изображение единственным способом сохранения изображений в Android?

Ответы [ 2 ]

0 голосов
/ 22 июня 2011

Проверьте эту ссылку для образца. Если в Выбранных изображениях из Галереи отображается Исключение для растрового изображения вне диапазона, вам необходимо декодировать изображение.

Масштабировать изображение на экране Размер ....

Выбор изображения из галереи и его декодирование .......

0 голосов
/ 22 июня 2011

Для сохранения изображения в SDCARD используйте следующий код

    String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
    File file = new File(extStorageDirectory, imagename);
    file.createNewFile();
    FileOutputStream fos = new  FileOutputStream(file);
    bm.compress(CompressFormat.JPEG, 75, fos);
    fos.flush();
    fos.close();
...