0

さて、現在のビューの画像を取得してビットマップに変換するコードがあります。

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

今、私がやろうとしているのは、現在のビューがどのように見えるかの写真を撮ることですが、ここから簡単にbitmapDrawableImageView に入れることができますが、それは私が望むものではありません。それを保存する。私に何ができる?を使用して、1つの方法を見つけました

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();終了するまで通過しますが、何も起こらず、保存されず、私の電話にも何も起こりません

4

1 に答える 1

0

その行で null になる可能性がある (そして NullPointerException を引き起こす) 唯一のものは です。これは、意図したとおりに機能しなかっbmたことを意味します。Bitmap bm = view.getDrawingCache();スタックトレースを投稿できますか?

于 2010-11-28T08:14:19.420 に答える