Android谷歌地图圈形状

时间:2015-04-05 12:21:29

标签: android google-maps android-layout android-fragments google-maps-android-api-2


我需要在圆圈形状中显示谷歌地图,如下图所示。

 Map in circle

我现在使用的解决方案如下所示:

 <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。此解决方案工作正常,看起来不错。不幸的是现在我必须在整个布局下面显示背景图像。因此,我的解决方案在这种情况下无法工作,因为它具有将覆盖在主背景之上的白色背景图像。

有没有其他解决方案如何在不使用可绘制覆盖层的情况下实现此结果?

2 个答案:

答案 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>

enter image description here