具有特定形状的布局

时间:2017-12-25 08:06:32

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

我想创建一个活动,用户可以在其中查看每个州的一些统计信息,如下所示:

州活动示例

state activity example

每个州的颜色基于统计数据,当用户点击每个州时,另一个活动就会打开。我的问题是如何实现这一目标?我可以创建50个片段但是如何为每个片段定义特定的形状(类似于地图)?好像谷歌地图可能有一些API,但我找不到任何好的参考。

不幸的是我找不到适合这个问题的实现,我能想到的最好的事情就是这样:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.vira.as.testmap.MainActivity">

   <ImageView
       android:id="@+id/im1"
       android:layout_width="135dp"
       android:layout_height="320dp"
       android:src="@drawable/california"/>

    <ImageView
        android:id="@+id/im2"
        android:layout_width="200dp"
        android:layout_height="370dp"
        android:src="@drawable/nevada"
        android:layout_marginStart="29dp"
        android:layout_marginBottom="42dp"
        android:layout_alignBottom="@+id/im1"
        android:layout_alignParentStart="true" />

    <ImageView
        android:id="@+id/im3"
        android:layout_width="125dp"
        android:layout_height="200dp"
        android:src="@drawable/arizona"
        android:layout_marginBottom="128dp"
        android:layout_alignParentBottom="true"
        android:layout_alignStart="@+id/im2"
        android:layout_marginStart="88dp" />
</RelativeLayout>

结果就是这个,这显然效率低下且真正的痛苦,但至少是有效的: sample result

1 个答案:

答案 0 :(得分:0)

您无法定义片段的形状,因为它是视图的不可见矩形容器。也许这就是你要找的东西(见[1]:https://developers.google.com/maps/documentation/android-api/shapes)。尝试在地图的前景中绘制透明度(0 < α < 1)的多边形区域并处理点击事件。