このトピックに関するほぼすべての投稿を読みましたが、どれも役に立たないようです。
現在の画面のスクリーンショットをキャプチャしようとしています。このために、getDrawingCache を使用しています。これが私のコードです:
mRootView.get().setDrawingCacheEnabled(true);
mRootView.get().buildDrawingCache();
Bitmap screenShot = Bitmap.createBitmap(mRootView.get().getDrawingCache());
mRootView.get().setDrawingCacheEnabled(false);
結果のビットマップは常に黒です。
mRootView は、私のルート ビューであるドロワー レイアウトへの弱参照です。
これが私が試したことです:
- メジャーとレイアウトの呼び出しを追加します (ただし、このコードはボタンが押されたときに実行されるため、ビューは既にレイアウトされているはずなので、これは必要ありません)。
- setDrawingCacheEnabled(true) を呼び出す前に、レイヤ タイプを LAYER_TYPE_NONE に設定します。
- 別のビューをルート ビューとして使用する (たとえば、DrawerLayout 内の ViewPager)。
何も機能していないようで、アイデアが不足しています。