我需要在圆圈形状中显示谷歌地图,如下图所示。
我现在使用的解决方案如下所示:
<packagename.views.SquareWidthRelativeLayout
android:id="@+id/map_wrapper"
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment
android:id="@+id/map_fragment"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<RelativeLayout
android:id="@+id/map_button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/map_round_border"
android:clickable="true"
android:focusable="true"></RelativeLayout>
</packagename.views.SquareWidthRelativeLayout>
所以实际上我只是用新的相对布局层覆盖了它,并带有可绘制的圆形png。此解决方案工作正常,看起来不错。不幸的是现在我必须在整个布局下面显示背景图像。因此,我的解决方案在这种情况下无法工作,因为它具有将覆盖在主背景之上的白色背景图像。
有没有其他解决方案如何在不使用可绘制覆盖层的情况下实现此结果?
答案 0 :(得分:0)
创建一个custom view - 一个圆圈。将其用作子视图。 Here这是一个教程。将地图片段放在此视图中。
然后按照this answer中的说明将ImageView放在RelativeLayout中的自定义视图之前。
答案 1 :(得分:0)
可能对您有帮助。工作正常。在这个png圆圈中是透明的。
<RelativeLayout
android:layout_width="250dp"
android:layout_height="250dp"
android:layout_centerInParent="true">
<com.google.android.gms.maps.MapView
android:id="@+id/mapview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/back" />
</RelativeLayout>