我一直相信技术再渣也能够有更好的更巧妙的想法来帮助我们解决面前的问题的,我们先运用各种思考的原则来逐步想开问题的本质,好了,这是我写的第一篇博客,回归正题。
最近在做一个关于地图的项目,客户要求说要完美的截屏,可是当我搜索了网上关于截屏的代码并使用了之后,发现地图是黑屏的,但是,百度地图自带也有截屏的方法,可是截屏出来的只有地图,我做的解决方案就是:
1.先布局一个和地图控件一样大的imageView,然后事先隐藏掉
2.用 mapView.snapshot(new SnapshotReadyCallback()) 的方法把整个地图截下来,然后利用里面的 void onSnapshotReady(Bitmap snapshot) 方法产生的 Bitmap 对象加载到imageview控件里,显示该控件,隐藏 mapView 控件,延后一点时间让第一个截图行为和加载到 imageView 的过程执行完毕,开始用android自带的截图方法(网上有很多,可以自己去搜一下),此时,截出来的就是我们想要的效果啦,记得把 imageView 隐藏,mapView 再次显示。实践证明,根本看不出来有什么变化,就得到了我们想要的结果!!
3最后,截图也是需要一定的时间的,什么时候隐藏比较好,有顺序先后,建议使用handler延后执行