1

現在のアクティビティのスナップショットを取得するための解決策を見つけるために調査しましたが、スナップショットを取得するための 2 つの解決策を見つけましたが、それらのすべてが私が望む正しいものを得るのに役立ちません。

私のアクティビティはカメラを使用し、そのレイアウトで 3D オブジェクトを表示します (AR と同じですが、マーカーを使用せず、カメラ フレームに 3D オブジェクトを描画するだけです)。

そのため、見つかったソリューションを使用すると、XML ファイルの物理デザイン画面と同じビットマップである他のオブジェクト (いくつかのボタン) を使用して、親レイアウト (カメラと 3D オブジェクトの両方を保持するために使用する RelativeLayout) を取得するだけです。

このソリューションを使用してスナップショットを取得しました:

private Bitmap takeScreenShot(Activity activity)
 {
     View view = activity.getWindow().getDecorView();
     view.setDrawingCacheEnabled(true);
     view.buildDrawingCache();
     Bitmap b1 = view.getDrawingCache();
     Rect frame = new Rect();
     activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
     int statusBarHeight = frame.top;
     int width = activity.getWindowManager().getDefaultDisplay().getWidth();
     int height = activity.getWindowManager().getDefaultDisplay().getHeight();

     Bitmap b = Bitmap.createBitmap(b1, 0, statusBarHeight, width, height  - statusBarHeight);
     view.destroyDrawingCache();
     return b;
 }    

そしてこの解決策:

public Bitmap snap() {
    Bitmap bitmap = Bitmap.createBitmap(this.view.getWidth(), this.view.getHeight(), Config.ARGB_8888);
    Canvas canvas = new Canvas(bitmap);
    view.draw(canvas);
    return bitmap;
  }    

しかし、私は同じ結果を得ました。

この問題を解決するための良い解決策を見つけるのを手伝ってください。

ありがとう。

4

0 に答える 0