相关疑难解决方法(0)

Android截图表面视图显示黑屏

我试图通过代码获取我的游戏截图并通过意图分享.我可以做这些事情,但屏幕截图总是显示为黑色.以下是与共享屏幕截图相关的代码:

View view = MainActivity.getView();
view.setDrawingCacheEnabled(true);
Bitmap screen = Bitmap.createBitmap(view.getDrawingCache(true));
.. save Bitmap
Run Code Online (Sandbox Code Playgroud)

这是在MainActivity中:

view = new GameView(this);
view.setLayoutParams(new RelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams.FILL_PARENT,
            RelativeLayout.LayoutParams.FILL_PARENT));

public static SurfaceView getView() {
    return view;
}
Run Code Online (Sandbox Code Playgroud)

而观点本身:

public class GameView extends SurfaceView implements SurfaceHolder.Callback {
private static SurfaceHolder surfaceHolder;
...etc
Run Code Online (Sandbox Code Playgroud)

这就是我绘制一切的方式:

Canvas canvas = surfaceHolder.lockCanvas(null);
        if (canvas != null) {
                Game.draw(canvas);
...
Run Code Online (Sandbox Code Playgroud)

好的,根据一些答案,我构建了这个:

public static void share() {
    Bitmap screen = GameView.SavePixels(0, 0, Screen.width, Screen.height);
    Calendar c = Calendar.getInstance();
    Date d = c.getTime();
    String path = …
Run Code Online (Sandbox Code Playgroud)

android surfaceview

29
推荐指数
4
解决办法
3万
查看次数

截取SurfaceView的截图

我正在开发一个简单的相机应用 我有代码截取整个活动的截图并将其写入Sd卡.问题是Surfaceview返回黑屏.

我想知道如何独立拍摄surfaceview的截图.这是获取整个活动屏幕截图的代码.

    findViewById(R.id.screen).setOnClickListener(new OnClickListener() {
      @Override
     public void onClick(View v) {
     final RelativeLayout layout = (RelativeLayout) findViewById(R.id.RelativeLayout1);
      layout.setVisibility(RelativeLayout.GONE);
       Bitmap bitmap = takeScreenshot();
        Toast.makeText(getApplicationContext(),"Please Wait",         Toast.LENGTH_LONG).show();
       saveBitmap(bitmap);
   }
});

}



      public Bitmap takeScreenshot() {
       View rootView = findViewById(android.R.id.content).getRootView();
       rootView.setDrawingCacheEnabled(true);
       return rootView.getDrawingCache();
    }


           public void saveBitmap(Bitmap bitmap) {
         final MediaPlayer cheer = MediaPlayer.create(PicShot.this, R.raw.shutter);
       cheer.start();
        Random generator = new Random();
      int n = 10000;
       n = generator.nextInt(n);
        String fname = "Image-"+ n +".png";
      final RelativeLayout layout = (RelativeLayout)     findViewById(R.id.RelativeLayout1);
     File imagePath …
Run Code Online (Sandbox Code Playgroud)

camera android screenshot surfaceview

11
推荐指数
2
解决办法
2万
查看次数

标签 统计

android ×2

surfaceview ×2

camera ×1

screenshot ×1