我想上一個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