2014-10-22 75 views
1

我想創建一個不同角落一看,形狀的XML是以下幾點:背景在不同角落的情況下是不會畫的?

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 

<solid android:color="#01A2EA" /> 

<corners 
    android:bottomLeftRadius="30dp" 
    android:bottomRightRadius="30dp" 
    android:radius="30dp" 
    android:topLeftRadius="30dp" 
    android:topRightRadius="30dp" /> 

</shape> 

它執行好,藍色的背景,但之後,我變了樣四個角半徑二:

<corners 
    android:bottomLeftRadius="30dp" 
    android:bottomRightRadius="30dp" 
    android:radius="30dp" 
    android:topLeftRadius="0dp" 
    android:topRightRadius="0dp" /> 

它失去了背景顏色,我什麼都看不到。

的API文件說:

注:每一個角落都必須(最初)被超過1提供一個拐角半徑更大,否則沒有邊角圓潤。如果你想要特定的角落不被舍入,一個解決方法是使用android:radius來設置一個大於1的默認角半徑,然後用你真正想要的值覆蓋每個角,提供零(「0dp」 )你不想要圓角的地方。

但是,它似乎不能正確地工作與背景?

+0

嘗試刪除android:radius =「30dp」 – 2014-10-22 05:42:46

回答

1

是的你是對的有一個錯誤,但你可以像這樣解決它。

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 

    <solid android:color="#01A2EA" /> 

    <corners 
     android:bottomRightRadius="30dp" 
     android:bottomLeftRadius="30dp" 
     android:topRightRadius="0.1dp" 
     android:topLeftRadius="0.1dp"/> 
</shape> 

注:

這可能不是在設計時體現。所以請運行代碼以查看效果。

1

改爲使用。

<corners 
    android:bottomLeftRadius="30dp" 
    android:bottomRightRadius="30dp" /> 
+0

您的代碼也在真實設備上正確運行:-) – zzy 2014-10-22 09:19:58

相關問題