Android - 如何在 Google 地图上为 Google 徽标设置底部填充
Posted
技术标签:
【中文标题】Android - 如何在 Google 地图上为 Google 徽标设置底部填充【英文标题】:Android - How to set bottom padding for Google Logo on Google Maps 【发布时间】: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_
android:layout_
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 徽标?
【问题讨论】:
【参考方案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));
上面的值在我的情况下有效,与你的相似,但可能你需要做一些测试
【讨论】:
以上是关于Android - 如何在 Google 地图上为 Google 徽标设置底部填充的主要内容,如果未能解决你的问题,请参考以下文章
Android Studio - Google 地图在真正的 Android 设备上发布 apk 时仍为空白
Android Studio - 真正的 Android 设备上的 Google 地图在发布 apk 时仍为空白
如何在 Android 上的 Google 地图上的标记旁边显示标签?