Android Google Maps 监听地图缩放

接上篇。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;
        }
    }
};

至此,完成。希望可以给大家提供一些其他的解决思路。

posted @   孤独的猫咪神  阅读(3468)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示