Android中自定義drawable資源實現佈局的圓角邊框效果
阿新 • • 發佈:2019-01-08
佈局的圓角邊框效果圖如下所示:
如上圖紅色標註的部分就是一個圓角邊框效果的自定義搜尋框。
實現起來很簡單,讓佈局(Relativelayout或者LinearLayout)的background屬性引用自定義的drawable資源即可。
android:background="@drawable/bg_shape"
自定義drawable資源如下所示:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape ="rectangle" >
<!-- 表示shape的四個角的角度。只適用於矩形shape,這裡的角度是指圓角的程度 -->
<corners android:radius="50dp" />
<!-- 這個標籤表示純色填充,通過android:color即可指定shape中填充的顏色 -->
<solid android:color="@color/white" />
<!-- Shape的描邊,下面指定了描邊的寬度和描邊的顏色 -->
<stroke
android:width ="1dp"
android:color="@color/blue" />
</shape>
xml佈局中的程式碼如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation ="vertical"
android:padding="10dp"
tools:context="com.example.mysearchview.MainActivity" >
<LinearLayout
android:id="@+id/ll1"
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="@drawable/bg_shape"
android:orientation="horizontal" >
</LinearLayout>
</LinearLayout>
效果圖如下所示:
其實上面的drawable資源確切點說應該叫做ShapeDrawable,它是一種很常見的Drawable,可以理解為通過顏色來構造的圖形,它既可以是純色的圖形,也可以是具有漸變效果的圖形。
需要注意的是標籤建立的Drawable,其實體類實際上是GradientDrawable,下面說一下android:shape屬性的含義。
android:shape
表示圖形的形狀,有四個選項:rectangle(矩形)、oval(橢圓)、line(橫線)和ring(圓環)。它的預設值是矩形。
由於該屬性的預設值是矩形,所以實現圓角效果的時候,該屬性也可以不指定,因為預設就是矩形。