在包含地图的项目中,有时我们需要截屏用于分享什么的,不过常规的用于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)布局,
然后再将需要的界面截图,这样所获得的截图中已经包含可视化地图。
本文介绍在地图项目中如何实现地图的截屏功能,包括地图的继承与回调方法的实现,以及如何将地图与Activity界面结合进行截图。通过实例演示了在高德地图中获取地图截图的方法,并提供了保存截图到SD卡的具体步骤。

2049

被折叠的 条评论
为什么被折叠?



