1. 程式人生 > >Android中shape屬性詳解

Android中shape屬性詳解

一、簡單使用

剛開始,就先不講一堆標籤的意義及用法,先簡單看看shape標籤怎麼用。

1、新建shape檔案

首先在res/drawable資料夾下,新建一個檔案,命名為:shape_radius.xml

內容是這樣的:(先不需要理解,先看shape怎麼用)

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <shapexmlns:android="http://schemas.android.com/apk/res/android">
  3. <cornersandroid:radius="20dip"/>
  4. <solidandroid:color="#ff00ff"/>
  5. </shape>
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <shapexmlns:android="http://schemas.android.com/apk/res/android">
  3.     <cornersandroid:radius="20dip"/>
  4.     <solidandroid:color="#ff00ff"/>
  5. </shape>

2、新增到控制元件中

在定義好shape檔案後,下一步就是將其新增到控制元件中,新增到控制元件中,一般是使用設定background屬性,將其為控制元件背景,下面,我們將其設定為MainActivity對應的佈局中(activity_main.xml),將其設為TextView的背景,看顯示出來 是什麼樣子的。
  1. <RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. tools:context="com.harvic.tryshape.MainActivity">
  6. <TextView
  7. android:layout_width="wrap_content"
  8. android:layout_height="wrap_content"
  9. android:layout_margin="50dip"
  10. android:text="@string/hello_world"
  11. android:background="@drawable/shape_radius"/>
  12. </RelativeLayout>
  1. <RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  2.     xmlns:tools="http://schemas.android.com/tools"
  3.     android:layout_width="match_parent"
  4.     android:layout_height="match_parent"
  5.     tools:context="com.harvic.tryshape.MainActivity">
  6.     <TextView
  7.         android:layout_width="wrap_content"
  8.         android:layout_height="wrap_content"
  9.         android:layout_margin="50dip"
  10.         android:text="@string/hello_world"
  11.         android:background="@drawable/shape_radius"/>
  12. </RelativeLayout>
顯示出來的結果是這樣的:



二、基本屬性(corners、gradient、padding、size、solid、stroke)

上面給大家簡單的講了下shape標籤組的簡單使用方法,下面就具體講講shape標籤裡所具有的幾個子標籤及所具有的屬性。

1、Corners

  1. <corners    //定義圓角    
  2. android:radius="dimension"      //全部的圓角半徑    
  3. android:topLeftRadius="dimension"   //左上角的圓角半徑    
  4. android:topRightRadius="dimension"  //右上角的圓角半徑    
  5. android:bottomLeftRadius="dimension"    //左下角的圓角半徑    
  6. android:bottomRightRadius="dimension"/>    //右下角的圓角半徑    
  1. <corners    //定義圓角    
  2.     android:radius="dimension"      //全部的圓角半徑    
  3.     android:topLeftRadius="dimension"   //左上角的圓角半徑    
  4.     android:topRightRadius="dimension"  //右上角的圓角半徑    
  5.     android:bottomLeftRadius="dimension"    //左下角的圓角半徑    
  6.     android:bottomRightRadius="dimension"/>    //右下角的圓角半徑    
Corners標籤是用來字義圓角的,其中radius與其它四個並不能共同使用。

android:radius:定義四個角的的圓角半徑。

其它四個是逐個字義每個角的圓角半徑。

使用:

控制元件佈局:

  1. <RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  2. android:layout_width="match_parent"
  3. android:layout_height="match_parent">
  4. <TextView
  5. android:layout_width="100dp"
  6. android:layout_height="100dp"
  7. android:layout_margin="50dip"
  8. android:text="@string/hello_world"
  9. android:background="@drawable/shape_radius"/>
  10. </RelativeLayout>
  1. <RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  2.     android:layout_width="match_parent"
  3.     android:layout_height="match_parent">
  4.     <TextView
  5.         android:layout_width="100dp"
  6.         android:layout_height="100dp"
  7.         android:layout_margin="50dip"
  8.         android:text="@string/hello_world"
  9.         android:background="@drawable/shape_radius"/>
  10.  </RelativeLayout>
shape定義:
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <shapexmlns:android="http://schemas.android.com/apk/res/android">
  3. <cornersandroid:radius="20dip"/>
  4. <solidandroid:color="#ffff00"/>
  5. </