2011-03-06 95 views
3

我想编写一个简单的使用以下布局的MapActivity(仅包含当前的mapview,因为我打算在将来添加与ListView共享屏幕):向地图视图添加圆角

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <com.google.android.maps.MapView 
    android:id="@+id/mapview" 
    android:layout_width="fill_parent" 
    android:layout_height="200dip" 
    android:enabled="true" 
    android:clickable="true" 
    android:apiKey="mykey" 
    android:layout_alignParentBottom="true" /> 
</RelativeLayout> 

我已经以具有圆角和笔划施加一个简单的形状,以的MapView:

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <corners android:bottomRightRadius="10dp" 
       android:bottomLeftRadius="10dp" 
       android:topLeftRadius="10dp" 
       android:topRightRadius="10dp"/> 
    <stroke android:width="3dp" 
       android:color="@color/bordure_tables" /> 
</shape> 

我使用以下申请的形状:

mapView.setBackgroundResource(R.layout.map); 

问题是它没有任何效果,我看不到我的圆角,也没有中风。

+0

有人请吗? – 2011-05-27 08:39:26

+0

同样的问题!请帮助我们。 – 2011-09-27 03:07:32

回答

1

你有没有试过把它分配给一个填充?

<padding 
    android:left="2dp" 
    android:top="2dp" 
    android:right="2dp" 
    android:bottom="2dp" /> 

所以你的笔画和半径应该是可见的。

+0

这对mapview不起作用,它确实是一个不称职的组件:) – Warpzit 2011-12-21 12:07:28

0

所以,我已经实现了通过做以下这个影响:我创建了一个9补丁绘制所谓round_corners并把它放在我的绘制文件夹,然后我用下面的XML绘制地图:

<FrameLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent">/ 

     <com.google.android.maps.MapView 
      android:id="@+id/center_map" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:clickable="true" 
      android:apiKey="your_key" 
     /> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:orientation="vertical" 
      android:background="@drawable/round_corners" 
     ></LinearLayout> 
    </FrameLayout> 
4

只是写了一个教程,有一个MapView的,它的完成编程所以应该很好地扩展到所有设备圆角:

http://www.anddev.org/novice-tutorials-f8/rounded-corners-map-view-t56908.html

一旦你已经添加的自定义视图类,你可以只是实例化一个圆形的MapView,比如s ○:

<com.blundell.tut.ui.widget.RoundedMapView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"/> 
+0

当你完成组件时,这将是一个很好的解决方案:) – Warpzit 2011-12-21 12:08:07

0

我能够实现这个创建圆形绘制这样的:

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle"> 
    <solid android:color="@android:color/transparent" /> 
    <stroke android:width="10dp" android:color="@color/color_gray5_eeeeee" /> 
    <corners android:radius="10px" /> 
</shape> 

然后使用线性布局和可绘制笔划宽度的相同尺寸的裕度,这样的:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@drawable/background_gray_rectangle_rounded_corners" 
android:orientation="vertical"> 

<com.google.android.gms.maps.MapView 
    android:id="@+id/map_details_map_view" 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_marginTop="10dp" 
    android:layout_marginBottom="10dp" 
    android:clickable="true" 
    android:enabled="true" /> 
</LinearLayout>