1. 程式人生 > >Android中自定義drawable資源實現佈局的圓角邊框效果

Android中自定義drawable資源實現佈局的圓角邊框效果

佈局的圓角邊框效果圖如下所示:

這裡寫圖片描述

如上圖紅色標註的部分就是一個圓角邊框效果的自定義搜尋框。

實現起來很簡單,讓佈局(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(圓環)。它的預設值是矩形。

由於該屬性的預設值是矩形,所以實現圓角效果的時候,該屬性也可以不指定,因為預設就是矩形。

每天進步一點點!加油!