android华为虚拟截屏黑屏,Android截屏表面视图显示黑屏

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)还存在,以及如何解决这个问题?

谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值