带有地图的Activity在截屏时地图空白,原来必须使用地图自带的截屏。

在包含地图的项目中,有时我们需要截屏用于分享什么的,不过常规的用于Activity界面的截屏并不能将地图一起截获,查看地图API才发现,原来地图有自己的用于截屏的接口。已高德地图为例:

1.Activity要继承OnMapScreenShotListener接口,实现回调方法:

/**
  * 截屏回调方法
  */
  @Override
  public void onMapScreenShot(Bitmap bitmap) {
     SimpleDateFormat sdf =  new SimpleDateFormat( "yyyyMMddHHmmss" );
     try {
            // 保存在SD卡根目录下,图片为png格式。
         FileOutputStream fos =  new FileOutputStream(
                 Environment.getExternalStorageDirectory() +  "/test_"
                         + sdf.format( new Date()) +  ".png" );
         boolean b = bitmap.compress(CompressFormat.PNG,  100 , fos);
         try {
             fos.flush();
         catch (IOException e) {
             e.printStackTrace();
         }
         try {
             fos.close();
         catch (IOException e) {
             e.printStackTrace();
         }
         if (b)
             ToastUtil.show(ScreenShotActivity. this "截屏成功" );
         else {
             ToastUtil.show(ScreenShotActivity. this "截屏失败" );
         }
     catch (FileNotFoundException e) {
         e.printStackTrace();
     }

2.在需要截屏的地方调用方法:aMap.getMapScreenShot(this);

3.需要注意的是:如果需要截的图地图只是其中一部分,则需要先将地图截屏,将截好的地图图片放到地图的上面(可是使用FrameLayout)布局,
  然后再将需要的界面截图,这样所获得的截图中已经包含可视化地图。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值