本文講解如何實現布局邊框的部分圓角
大家可能都知道圓角實現其實很簡單, 在drawable文件夾下新建xml文件加入以下代碼
情景1: 四個角均為圓角
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- rectangle表示為矩形 -->
<!-- 填充的顏色 -->
<solid android:color="@color/blue" />
<!-- 邊框的顏色和粗細 -->
<stroke
android:width="1dp"
android:color="@color/blue"
/>
<!-- android:radius 圓角的半徑 -->
<corners
android:radius="2dp"
/>
</shape>
通過以上代碼設置成布局的background即可實現布局四個角均為圓角.
一般情況下上面就可以滿足我們的需求, 那么如果我們不想它四個角都為圓角該怎么辦?
情景2:只要頂部兩個角為圓角
細心的朋友可能會發現, <corners>標簽中其實可以分別設置每個角的圓角.如以下代碼
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- rectangle表示為矩形 -->
<!-- 填充的顏色 -->
<solid android:color="@color/blue" />
<!-- 邊框的顏色和粗細 -->
<stroke
android:width="1dp"
android:color="@color/blue"
/>
<!-- android:radius 圓角的半徑 -->
<corners
android:topLeftRadius="8dp"
android:topRightRadius="8dp"
android:bottomRightRadius="0dp"
android:bottomLeftRadius="0dp"
/>
</shape>
哇, 是不是好簡單, 但實際情況并不能達到你想要的效果,你會發現它還是會4個角都圓角, 對! 這就是一個坑..
那么重點來了_ ,先來看看正確實現的代碼
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- rectangle表示為矩形 -->
<!-- 填充的顏色 -->
<solid android:color="@color/blue" />
<!-- 邊框的顏色和粗細 -->
<stroke
android:width="1dp"
android:color="@color/blue"
/>
<!-- android:radius 圓角的半徑 -->
<corners
android:radius="2dp" //關鍵點
android:topLeftRadius="8dp"
android:topRightRadius="8dp"
android:bottomRightRadius="0dp"
android:bottomLeftRadius="0dp"
/>
</shape>
注: 可能android studio 預覽效果還是4個圓角, 但實際運行是滿足的, 畢竟是官方文檔給出的解決方案~
對, 沒錯, 就是多了一行android:radius="2dp"
, 這里引申出兩個知識點, 希望大家以后可以注意一下:
- 在設置圓角時,圓角半徑的大小必須大于1,否則是沒有圓角效果的
- 如果你想單獨設置某幾個角是圓角, 你必須首先聲明 radius 屬性(必須大于1), 然后在其他四個角的屬性中設置每個角的實際想要的半徑大小, 不想圓角的設置為("0dp").
好啦,大家對圓角的設置應該比較清楚了, 那么實際應用起來吧~
希望對大家的學習有所幫助~~~