Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:拍摄快照活动包括相机和3D对象_Android - Fatal编程技术网

Android:拍摄快照活动包括相机和3D对象

Android:拍摄快照活动包括相机和3D对象,android,Android,我已经研究过如何拍摄当前活动的快照,我发现了两种拍摄快照的方法,但它们都不能帮助我得到我想要的正确的东西 我的活动使用摄影机,并在该布局中显示3D对象(与AR相同,但不使用标记,只在摄影机帧中绘制3D对象) 因此,当我使用找到的解决方案时,我只会得到父布局(RelativeLayout,我用来保持相机和3D对象)和一些其他对象(一些按钮),该位图与XML文件的物理设计屏幕相同 我使用此解决方案获取快照: private Bitmap takeScreenShot(Activity activit

我已经研究过如何拍摄当前活动的快照,我发现了两种拍摄快照的方法,但它们都不能帮助我得到我想要的正确的东西

我的活动使用摄影机,并在该布局中显示3D对象(与AR相同,但不使用标记,只在摄影机帧中绘制3D对象)

因此,当我使用找到的解决方案时,我只会得到父布局(RelativeLayout,我用来保持相机和3D对象)和一些其他对象(一些按钮),该位图与XML文件的物理设计屏幕相同

我使用此解决方案获取快照:

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;
  }    
但我得到了同样的结果

请帮我找到解决这个问题的好办法

谢谢