2017-09-20 7 views
0

通知バーをクリックすると、アプリケーションが現在の画面をキャプチャするようにしたい。しかし、私は、通知バーが消えた後にアプリをキャプチャしたい。キャプチャされた画面を保存して直ちに読み込んで表示することをお勧めします。私はどうしたの?通知バーをクリックした瞬間、現在の画面をキャプチャするようにしたい

+0

これまで行ってきたことを少なくとも私たちに見せてもらえますか? –

答えて

0

コードの例としては、「新しいフルスクリーンアクティビティ」のテンプレートを作成します。これは、ツールバーを表示/非表示にしてフルスクリーン表示する方法を示します。

その後、タイマーでは発生しないようにコードを変更し、代わりにツールバーに配置するタッチリスナーにコードを移動します。

最後に、一度フェードが消えたら(あなたが望むなら即座に行うことができます)、あなた自身のスクリーンショットを作るだけです。

public static Bitmap takeScreenshotOfView(Activity context, Bitmap.CompressFormat compressFormat){ 
     Bitmap screenshot = null; 

    try { 
     // create bitmap screen capture 
     View v1 = context.getWindow().getDecorView().getRootView(); 
     v1.setDrawingCacheEnabled(true); 
     screenshot = Bitmap.createBitmap(v1.getDrawingCache()); 
     v1.setDrawingCacheEnabled(false); 

     File imageFile = new File(context.getFilesDir() + File.separator + "A35_temp" + File.separator + "screenshot_temp"); 

     FileOutputStream outputStream = new FileOutputStream(imageFile); 
     int quality = 100; 

     screenshot.compress(compressFormat, quality, outputStream); 
     outputStream.flush(); 
     outputStream.close(); 

    } catch (Throwable e) { 
     // Several error may come out with file handling or OOM 
     e.printStackTrace(); 
    } 

    return screenshot; 
} 

そして、ちょうど同じようにそれを使用します:

Bitmap screenshot = ImageHelper.takeScreenshotOfView(this, Bitmap.CompressFormat.JPEG); 
したいか、私はこのようImageHelperをという名前のクラスに入れて簡単なコードを使用することができればあなたのためにこれを行います偉大なライブラリがたくさんあります

次に、プレビューではフルスクリーンアクティビティが開始されますが、デフォルトではツールバーは表示されず、フルスクリーンのImageViewには共有オーバーレイボタンなどがあります。

関連する問題