废话不多说了,直接给大家贴代码了,具体代码如下所述:
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
/** * 把一个view的对象转换成bitmap */ private bitmap getviewbitmap(mapview v) { v.clearfocus(); v.setpressed( false ); //能画缓存就返回false boolean willnotcache = v.willnotcachedrawing(); v.setwillnotcachedrawing( false ); int color = v.getdrawingcachebackgroundcolor(); v.setdrawingcachebackgroundcolor( 0 ); if (color != 0 ) { v.destroydrawingcache(); } v.builddrawingcache(); bitmap cachebitmap = null ; while (cachebitmap == null ){ cachebitmap = v.getdrawingmapcache( 0 , 0 , v.getwidth(), v.getheight()); } bitmap bitmap = bitmap.createbitmap(cachebitmap); // restore the view v.destroydrawingcache(); v.setwillnotcachedrawing(willnotcache); v.setdrawingcachebackgroundcolor(color); return bitmap; } public void savemybitmap(string bitname,bitmap mbitmap){ string filename= this .getinnersdcardpath() + "/" + bitname + ".png" ; showmessage(filename); file f = new file(filename); try { f.createnewfile(); } catch (ioexception e) { // todo auto-generated catch block log.e( "在保存" +filename+ "图片时出错:" + e.tostring(), "在保存" +filename+ "图片时出错:" + e.tostring()); } fileoutputstream fout = null ; try { fout = new fileoutputstream(f); } catch (filenotfoundexception e) { e.printstacktrace(); } mbitmap.compress(bitmap.compressformat.png, 100 , fout); try { fout.flush(); } catch (ioexception e) { e.printstacktrace(); } try { fout.close(); } catch (ioexception e) { e.printstacktrace(); } } //缩小 private class buttonnexitclicklistener implements view.onclicklistener { public void onclick(view v) { //showmessage("ok1"); bitmap bitmap=getviewbitmap(mapview); //showmessage("ok2"); savemybitmap( "yl" ,bitmap); //showmessage("ok3"); bitmap.recycle(); showmessage( "保存成功" ); } } |
以上所述是小编给大家介绍的andriod arcgis保存mapview为图片的实例代码,希望对大家有所帮助!