我想上一个MapView创建圆角,并且因为似乎没有什么办法在默认情况下做到这一点,我基本上覆盖布局与背景在我的地图视图,像这样:如何创建一个外部呈方形并且里面有圆角的drawable?
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" >
<RelativeLayout
android:id="@+id/map_holder"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="@drawable/panel_rounded_corner_transparent" />
</RelativeLayout>
我圆角绘制的定义是这样的:
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/bg_rounded_corner_transparent" />
</selector>
和绘制内部被定义为:
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<solid
android:color="@color/transparent" />
<stroke
android:width="1dp"
android:color="@color/darkgray" />
<corners
android:radius="5dp" />
</shape>
</item>
</layer-list>
然而,问题是由于地图以矩形为边界并且边框为圆形,因此地图的角落从我临时边界的角落后面偷看出来。如何为我的边框外部设置背景颜色,同时保持面板内部透明?
澄清,这里有一些截图。
此屏幕截图显示在地图最初“有界”的叠加边界:
这个屏幕截图替换为一个红色的背景下,为了更清楚的地图中看到的问题是什么:
正如您所看到的,红色(以及扩展名,地图)在边界之外流血。
我可以添加一个1DP填充到地图,但这并不能完全解决问题,因为你可以在这里看到:
由于边角圆润,地图的部分继续泄漏出。它比第一个选项好很多,但并不完美 - 角落处有1个像素点。
由于该截图显示,超过1DP填充是不是一个解决方案,因为它完全是创建了另一个问题:
您可以发布它的屏幕截图? – FoamyGuy
使用填充。因此,地图视图将保留在您的界限内 – blessenm
用一些照片更新了帖子。 Blessenm,我在发布原始问题后不久就想到了你的建议,但这并不能完全解决我的问题。 – Catherine