【问题标题】:Android - How to set bottom padding for Google Logo on Google MapsAndroid - 如何在 Google 地图上为 Google 徽标设置底部填充
【发布时间】:2018-09-15 23:14:47
【问题描述】:

在 iOS 中,这很容易。

不过,在 Android 中,我尝试通过 android:paddingBottom=80dp" 中的 xml 以及 mapView.setPadding(0,0,0,80) 中的编程方式在地图底部添加填充。在这两种情况下,地图都会向上移动,就像它被切割并出现空白区域一样,实际上只有 Google 徽标应该向上移动,而地图应该保持全高。

这是我的 xml:

<com.google.android.gms.maps.MapView
    android:id="@+id/mapView"
    android:layout_width="0dp"
    android:layout_height="0dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

因此,mapView 以全高继续,但由于填充,Google 地图的地图向上移动。有没有办法在 Google Maps 的地图保持不变的情况下只上移 Google 徽标?

【问题讨论】:

    标签: java android google-maps google-maps-api-3


    【解决方案1】:

    MapView 只是地图的 FrameLayout 容器。相反,在 onMapReady 回调中将填充添加到 GoogleMap 对象。像这样:

    @Override
    public void onMapReady(GoogleMap map) {
             map.setPadding(0,0,0,80);
    }
    

    还记得这里的填充值是以像素为单位的,你可以使用这个函数来做转换:

     public static int dpToPx(int dp, Context context) {
            DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
            return Math.round(dp * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
     }
    
    
    public static void setPaddingForGoogleLogo(GoogleMap map, Context context) {
        map.setPadding(LayoutUtils.dpToPx(15, context),
                LayoutUtils.dpToPx(45, context),
                LayoutUtils.dpToPx(0, context),
                LayoutUtils.dpToPx(85, context));
    }
    

    上面的值在我的情况下有效,与你的相似,但可能你需要做一些测试

    【讨论】:

      猜你喜欢
      • 2010-12-07
      • 2013-07-28
      • 1970-01-01
      • 2015-02-21
      • 1970-01-01
      • 1970-01-01
      • 2011-12-26
      • 2017-06-27
      • 2011-06-15
      相关资源
      最近更新 更多