为了账号安全,请及时绑定邮箱和手机立即绑定

Android截屏表面视图显示黑屏

Android截屏表面视图显示黑屏

慕森王 2019-07-01 10:29:56
Android截屏表面视图显示黑屏我试图通过代码拍摄我的游戏的截图,并通过一个意图来分享它。我能做这些事情,但是截图总是看起来是黑色的。下面是与分享截图相关的代码:View view = MainActivity.getView();view.setDrawingCacheEnabled(true);Bitmap screen = Bitmap.createBitmap(view.getDrawingCache(true));.. save Bitmap这是MainActivity中的内容:view = new GameView(this);view.setLayoutParams(new RelativeLayout.LayoutParams(             RelativeLayout.LayoutParams.FILL_PARENT,             RelativeLayout.LayoutParams.FILL_PARENT));public static SurfaceView getView() {     return view;}以及视图本身:public class GameView extends SurfaceView implements SurfaceHolder.Callback {private static SurfaceHolder surfaceHolder;...etc我就是这样画所有东西的:Canvas canvas = surfaceHolder.lockCanvas(null);         if (canvas != null) {                 Game.draw(canvas);...好的,基于一些答案,我构建了:public static void share() {     Bitmap screen = GameView.SavePixels(0, 0, Screen.width, Screen.height);     Calendar c = Calendar.getInstance();     Date d = c.getTime();     String path = Images.Media.insertImage(             Game.context.getContentResolver(), screen, "screenShotBJ" + d                    + ".png", null);     System.out.println(path + " PATH");     Uri screenshotUri = Uri.parse(path);     final Intent emailIntent = new Intent(             android.content.Intent.ACTION_SEND);     emailIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);     emailIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);     emailIntent.setType("image/png");     Game.context.startActivity(Intent.createChooser(emailIntent,             "Share High Score:"));}镜头仍然是黑色的。我拯救它的方式有什么问题吗?我尝试过几种不同的方法来获取屏幕快照,但是没有一种方法起作用:上面代码中显示的方法是最常用的方法。但这似乎行不通。这是使用SurfaceView的问题吗?如果是这样的话,如果我不能使用它,为什么view.getDrawinCache(True)还存在,以及如何解决这个问题?谢谢。
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 2454 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号