 時々プログラムからスクリーンショットを撮りたくなることがあると思います。
時々プログラムからスクリーンショットを撮りたくなることがあると思います。ずっとできないと思っていたのだけど実は View で描画したものを
Bitmap として取得することができました。
ステータスバーなどを含んだ画面全体を Bitmap として取得
いわゆるスクリーンショット。View#getRootView | Android Developersを使うためになにか適当な View が必要。
public Bitmap getScreenBitmap(View view){
    return getViewBitmap(view.getRootView());
}特定の View を Bitmap として取得
public Bitmap getViewBitmap(View view){
    view.setDrawingCacheEnabled(true);
    Bitmap cache = view.getDrawingCache();
    if(cache == null){
        return null;
    }
    Bitmap bitmap = Bitmap.createBitmap(cache);
    view.setDrawingCacheEnabled(false);
    return bitmap;
}View#getDrawingCache | Android Developers はシステムの持っている Bitmap の参照を返す。システム側から recycle されるので Bitmap#createBitmap | Android Developers で作り直す必要がある。
 













