Сохранение BitmapDrawable или Bitmap - PullRequest
0 голосов
/ 28 ноября 2010

Хорошо, у меня есть код, который берет изображение текущего представления и превращает его в растровое изображение, и в итоге я здесь,

Bitmap bm = view.getDrawingCache();
BitmapDrawable bitmapDrawable = new BitmapDrawable(bm);

Теперь, что я пытаюсь сделать, это сфотографировать, как выглядит текущий вид, но отсюда я могу легко поместить bitmapDrawable в ImageView, но это не то, что я хочу, я бы хотел бы пойти отсюда, чтобы сохранить его. Что я могу сделать? Я узнал один способ, используя

FileOutputStream fos;
  try {
   fos = super.openFileOutput("output.png",MODE_WORLD_READABLE);
   bm.compress(CompressFormat.PNG, 75, fos);

      fos.flush();
      fos.close();
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();

}
но когда я делаю это, я получаю исключение NullPointerException на

bm.compress(CompressFormat.PNG, 75, fos);

я что-то упустил?

Хорошо, теперь он проходит через вышеуказанный код, затем проходит fos.close(); до конца, но потом ничего не происходит, его не сохраняют, ни на моем телефоне, ничего

1 Ответ

0 голосов
/ 28 ноября 2010

Единственное, что может быть нулевым в этой строке (и вызвать исключение NullPointerException), это bm, что означает, что Bitmap bm = view.getDrawingCache(); не работал должным образом.Вы можете опубликовать трассировку стека?

...