[Android] Android アプリからScreenShotを撮る

端末で「電源ボタン」+「音量下」の同時押しでスクリーンショットが撮れますが、それ以外にも以下のような方法でスクショが撮れます。
アプリからスクリーンを撮る
adb コマンドを使ってキャプチャする
Android Studio のemulatorでのスクリーンショット

 

Android Studio 2.2.3
Android 7.1.1

 



Screen Caputre

 

 

アプリでスクリーンショット

 
これはAndroid Studioに入っているSampleを元に切り出したものです。

Android Studioから「New」「Import Sample」のサンプルの中に「Screen Capture」があります。このサンプルはFragmentになっているのでActivityに落として簡略化してImageViewで表示させるように修正しました。
 
アプリでスクリーンショットをユーザーに無断で撮るのは、ユーザーの重要な情報も取得できてしまうため許可を得る工程が入ります。

MediaProjection を使っていますが、Andorid5.0以降の機能です。

MainActivity.java

 
背景にサッカー女子の画像を入れて、スクリーンショットを撮ります。
activity_main.xml

 
スクリーンショットがとれました。
この画像を端末内に保存してギャラリーで見たり、メールで送ったり、をPCに取り込んだりすることが可能です
 

 

adb コマンドを使ってキャプチャする

 
adbコマンドからもキャプチャすることができます。
端末のディレクトリーで書き込み可能領域にtext.pngでスクリーンショット画像を撮って保存する例です。

その後で、その画像をPCのc:\tempに取り込めばいいのでこういうコマンドでいけます。

 
adbコマンドについて、書き込み可能領域の確認はadb コマンドを参照してください。

 

emulatorでのスクリーンショット

 

Android Studioでアプリを実行、カメラアイコンの「Screen Capture」をクリックします
 

screenshot
 

実行中のスクリーン表示されます
 

screenshot2
 

実行ターゲットによっては、大きすぎる場合もありますが、そんな時は虫眼鏡アイコンの「-」をクリックして画像を小さく表示します。ここで拡大・縮小はあくまで表示だけです。
 

screenshot3
 
 

だいぶ見やすくなりました。更にFrame Screenshotなどの効果も演出できます。

これで「Save」すると出来上がりです。

screenshot5