2013-09-27 74 views
1

這就是我想出的。創建一個具有圓角頂部和底部邊框的繪圖

<?xml version="1.0" encoding="utf-8"?> 
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item> 
     <shape android:shape="rectangle" > 
      <solid android:color="@color/grey" /> 

      <padding 
       android:bottom="1dp" /> 
      <corners 
       android:radius="0dp"/> 
     </shape> 
    </item> 
    <item> 
     <shape android:shape="rectangle" > 
      <solid android:color="@color/white" /> 
      <corners 
       android:radius="1dp" 
       android:bottomRightRadius="0dp" 
       android:bottomLeftRadius="0dp" 
       android:topLeftRadius="5dp" 
       android:topRightRadius="5dp"/> 
     </shape> 
    </item> 
</layer-list> 

這是行不通的,但是底部半徑顯示了我放置的任何值。

實際上只花費了topLeftRadius,使它看起來像這樣

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

enter image description here

+0

嗨,ü可以添加有關規定或者它應該如何看起來像一個屏幕截圖的更多信息? – Permita

回答

0

問題: 有提到一個bug here

解決方案: 的bug已經在api12中解決了。

所以試試通過提供相應的資源。創建兩個具有相同名稱的xml文件,並將其中一個文件夾放入drawable文件夾,另一個放入drawable-v12文件夾。

- >drawable文件夾:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
<item> 
    <shape android:shape="rectangle" > 
     <solid android:color="@color/grey" /> 

     <padding 
      android:bottom="1dp" /> 
     <corners 
      android:radius="0dp"/> 
    </shape> 
</item> 
<item> 
    <shape android:shape="rectangle" > 
     <solid android:color="@color/white" /> 
     <corners 
      android:radius="1dp" 
      android:bottomRightRadius="0dp" 
      android:bottomLeftRadius="0dp" 
      android:topLeftRadius="5dp" 
      android:topRightRadius="5dp"/> 
    </shape> 
</item> 
</layer-list> 

- >drawable-v12文件夾:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
<item> 
    <shape android:shape="rectangle" > 
     <solid android:color="@color/grey" /> 

     <padding 
      android:bottom="1dp" /> 
     <corners 
      android:radius="0dp"/> 
    </shape> 
</item> 
<item> 
    <shape android:shape="rectangle" > 
     <solid android:color="@color/white" /> 
     <corners 
      android:bottomRightRadius="0dp" 
      android:bottomLeftRadius="0dp" 
      android:topLeftRadius="5dp" 
      android:topRightRadius="5dp"/> 
    </shape> 
</item> 
</layer-list> 

我希望這會有所幫助!

+0

做到了這一點,我添加了它,因爲它似乎是解決方案,因爲我在這裏潛伏在SO上。刪除那不會做任何事情。看到這個http://stackoverflow.com/questions/6105521/android-shape-corners-do-not-work-when-setting-individual-corners – bman

+0

感謝您的幫助,但我只是針對v17到v18。似乎不工作時,刪除''android:radius =「1dp」'' – bman

+0

在真實設備或模擬器上測試? –

0

嗨,這裏是你的解決方案「歡呼:)」

首先添加此佈局作爲背景。 然後在下面添加一個視圖爲aline。

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

    <!-- you can use any color you want I used here gray color --> 
    <solid android:color="#ffffff" /> 

    <corners 
     android:topLeftRadius="3dp" 
     android:topRightRadius="3dp" /> 

</shape> 

而且

<View 
    android:layout_width="fill_parent" 
    android:layout_height="1dp" 
    android:background="@android:color/black"/> 
+0

雖然不適合我,但謝謝。 – bman

+0

這是我在我的項目中完成的一個。它的工作正常。 您的要求是不是你不能在下面添加一行 刷新頁面我已更新代碼 – DropAndTrap

+0

這是我在我的項目中完成的一個。它的工作很好 – DropAndTrap

0

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

     <solid android:color="#800000" /> 

     <stroke 
      android:width="3dp" 
      android:color="@android:color/black" /> 
    </shape> 
</item> 
<item android:bottom="3dp"> 
    <shape> 
     <corners 
      android:bottomLeftRadius="0.1dp" 
      android:bottomRightRadius="0.1dp" 
      android:topLeftRadius="10dp" 
      android:topRightRadius="10dp" /> 

     <solid android:color="#800000" /> 
    </shape> 
</item> 

5

我有同樣的問題的看法,試試吧。它對我很好。我只是將android:top =「10dp」添加到第二項。所以,它會導致頂部轉彎。

<?xml version="1.0" encoding="utf-8" ?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape android:shape="rectangle"> 
      <solid 
       android:color="@color/dialog_title_bar_blue"/> 

      <corners 
       android:topLeftRadius="10dp" 
       android:topRightRadius="10dp"/> 
     </shape> 
    </item> 
    <item 
     android:top="10dp"> 
     <shape android:shape="rectangle"> 
      <solid 
       android:color="@color/dialog_title_bar_blue"/> 
     </shape> 
    </item> 
</layer-list> 
+0

很好的把戲 –

相關問題