반응형
구글 맵 자바스크립트 V3를 쓰고 있었는데
롤리팝 올라오고 나서인지 얼마전 확인해 보니
구글맵의 폴리라인(polyline)이 캡쳐가 안되네요;;
보는건 제대로 나오지만 캡처만 하면 그렇네요.
요런식으로 마커만 나옵니다.
바로아래 킷캣에서는 제대로 되더군요.
할 수 없이 구글맵 프레그먼트를 적용했는데, 이번엔 지도자체가 검게 나오네요;;
그래서 찾다보니 snapshot이라는 메소드가 있어서 구현했습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | public void screenshot(){ GoogleMap.SnapshotReadyCallback callback=new GoogleMap.SnapshotReadyCallback() { Bitmap getmap; @Override public void onSnapshotReady(Bitmap bitmap) { getmap=bitmap; try{ //전체 bitmap만들기 Bitmap bm,bmTitle,bmInfo; bm = Bitmap.createBitmap(shareLayout.getWidth(), shareLayout.getHeight(), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bm); //타이틀 부분 비트맵 만들기 titlelayout.buildDrawingCache(); titlelayout.setDrawingCacheEnabled(true); titlelayout.setDrawingCacheBackgroundColor(Color.WHITE); bmTitle=titlelayout.getDrawingCache(); canvas.drawBitmap(bmTitle, 0, 0, null); //맵 부분 비트맵 붙이기 canvas.drawBitmap(getmap, 0, titlelayout.getHeight(), null); //정보부분 비트맵 만들어 붙이기 infolayout.buildDrawingCache(); infolayout.setDrawingCacheEnabled(true); infolayout.setDrawingCacheBackgroundColor(Color.WHITE); bmInfo=infolayout.getDrawingCache(); canvas.drawBitmap(bmInfo, 0, bmTitle.getHeight()+getmap.getHeight(), null); FileOutputStream out; String filename = "/" + System.currentTimeMillis() + ".jpg"; filename = Environment.getExternalStorageDirectory().toString() + filename; out = new FileOutputStream(filename); bm.compress(Bitmap.CompressFormat.JPEG, 100, out); sharintent(filename); }catch(Exception e){ Log.e("error",e.toString()+""); } } }; myMap.snapshot(callback); } | cs |
공유버튼을 눌렀을때 불러오는 함수 입니다.
Line 5 onSnapshotReady 는 지도를 캡쳐해주는 메소드 입니다.
Line 10~11 : 지도만 할게 아니고 위의 시간쪽과 밑에 정보들도 같이 해야되기 때문에
전체 레이아웃 크기의 비트맵을 만들어 줍니다.
Line 14~18 : 시간쪽 타이틀 정보를 캡쳐해서 비트맵에 붙여줍니다.
Line 20 : snapshot 찍은 지도를 비트맵에 이어서 붙여줍니다.
Line 22~26 : 밑의 정보들을 캡쳐해서 지도밑으로 붙여줍니다.
Line 42 : myMap은 mapfragment에서 얻어온 map입니다.
1 | GoogleMap myMap=mapFragment.getMap(); | cs |
반응형
'Study > Android' 카테고리의 다른 글
google maps android API를 이용한 지도 2 - Fragment (2) | 2015.10.23 |
---|---|
google maps android API를 이용한 지도 1 - FragmentActivity (6) | 2015.10.23 |
Notification.builder로 알림창 만들기 (0) | 2015.07.09 |
android switch error (0) | 2015.07.06 |
fragment 안에 mapfragment 구현시 에러 (0) | 2015.06.25 |