定位Google地图v2可放大Android中的控件

时间:2013-07-01 20:15:24

标签: android google-maps

我创建了一个透明的操作栏,但缩放控件和“Google”这个词背后。我不知道如何调整他们的位置。 Android手机上的默认Google地图应用将其提升到底部操作栏上方。是否可以重新定位缩放控件和“Google”一词?

我知道您可以使用以下命令启用/禁用控件:

 map.getUiSettings().setZoomControlsEnabled(true);

enter image description here

5 个答案:

答案 0 :(得分:14)

您可以使用GoogleMap.setPadding()方法(2013年9月添加)来完成此操作:

map.setPadding(leftPadding, topPadding, rightPadding, bottomPadding);

来自API文档:

  

此方法允许您在地图上定义可见区域,通过在地图的四个边缘中的每一个上设置填充来向地图发信号通知边缘周围的地图部分可能被遮挡。地图功能将适应填充。例如,缩放控件,指南针,版权声明和Google徽标将移动到适合定义区域内,相机移动将相对于可见区域的中心等。

另见description of how padding works in GoogleMap

答案 1 :(得分:2)

我认为这会对你有所帮助。我正在尝试实现类似的布局,我的解决方案是尝试在相机更新的3秒钟的时间间隔上隐藏控件。

我认为这是最好的解决方案,无需实现自定义控件。

mapFragment.setOnCameraChangeListener(new OnCameraChangeListener() {

            @Override
            public void onCameraChange(CameraPosition position) {
                mapFragment.getUiSettings().setZoomControlsEnabled(true);
                Timer t = new Timer();
                TimerTask tt = new TimerTask() {

                    @Override
                    public void run() {
                        getActivity().runOnUiThread(new Runnable() {

                            @Override
                            public void run() {
                                mapFragment.getUiSettings().setZoomControlsEnabled(false);

                            }
                        });

                    }
                };

                t.schedule(tt, 3000);


            }

        });

这主要是概念证明。但它确实有效。

答案 2 :(得分:1)

不幸的是,无法移动Google地图提供的缩放控件,您可以禁用它们并创建自己的自定义缩放控件并将它们放在地图的顶部。

答案 3 :(得分:0)

可以做到。自从被问及回答以来,也许有变化。

请在此处查看我提交给类似问题的答案:

How to move google map zoom control position in android?

简而言之,您可以获取缩放控制按钮的父布局并更改它的RelativeLayout LayoutParams。在我的回答中,我还包括如何移动指南针和工具栏。

答案 4 :(得分:0)

如果您正在执行此操作以进行地图调整,请仅在36dp40dp的底部使用边距或填充。否则,如果您在中心地图上使用位置,则使用相机属性,例如:

mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));

它专注于页面的meddium的位置。

这:mMap.getUiSettings().setZoomControlsEnabled(true);仅为您提供缩放级别,但不关注于meddium的位置。