接上篇。http://www.cnblogs.com/maomishen/p/3556297.html
由於公司項目要求,需要對google map監聽地圖的縮放(zoom)來進行一些操作。
但是在網上查了好多資料,突然發現在google提供的GoogleMap類中,沒有神馬類似的setOnZoomChangedListener之類的方法。
這讓我灰常的。。。不解啊。。。后來發現很多人是通過一個定時器循環來操作對比。
傷心之余,突然想到,也許縮放並不是GoogleMap中的屬性,而是Camera的屬性!遂,經過驗證,試驗通過。下面上代碼。
注:此處代碼接上篇。
MainActivity.java
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;
}
}
};
至此,完成。希望可以給大家提供一些其他的解決思路。
