接上篇。http://www.cnblogs.com/maomishen/p/3556297.html
由于公司项目要求,需要对google map监听地图的缩放(zoom)来进行一些操作。
但是在网上查了好多资料,突然发现在google提供的GoogleMap类中,没有神马类似的setOnZoomChangedListener之类的方法。
这让我灰常的。。。不解啊。。。后来发现很多人是通过一个定时器循环来操作对比。
伤心之余,突然想到,也许缩放并不是GoogleMap中的属性,而是Camera的属性!遂,经过验证,试验通过。下面上代码。
注:此处代码接上篇。
MainActivity.java
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 |
GoogleMap map; float mOldZoom; @SuppressLint ( "NewApi" ) @Override protected
void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Get a handle to the Map Fragment map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)) .getMap(); map.setMyLocationEnabled( true ); map.moveCamera(CameraUpdateFactory.newLatLngZoom( new
LatLng( 22.279 , 113.566 ), 13 )); CameraPosition cp = map.getCameraPosition(); mOldZoom = cp.zoom; map.setOnCameraChangeListener(listener); } OnCameraChangeListener listener = new
OnCameraChangeListener() { @Override public
void onCameraChange(CameraPosition cp) { if
(mOldZoom != cp.zoom) { Log.e( "googleMap" , cp.zoom+ "" ); mOldZoom = cp.zoom; } } }; |
至此,完成。希望可以给大家提供一些其他的解决思路。
原文:http://www.cnblogs.com/maomishen/p/3566150.html