Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android Drawable之GradientDrawable

Android Drawable之GradientDrawable

編輯:關於Android編程

GradientDrawable可以在res/drawable目錄下以xml文件用標簽來定義。看看官方文檔給出的xml定義說明吧。



    
    
    
    
    
    

上述定義中列舉了常用的屬性及可用的子元素。其中,shape是根元素,其屬性android:shape="rectangle"定義了shape的形狀為矩形。android:shape可選的參數包括“rectangle,oval,line和ring。當android:shape="ring"時,shape有以下一些屬性可用使用:
- android:innerRadius
尺寸。 內環的半徑。一個尺寸值(dip等等)或者一個尺寸資源。
- android:innerRadiusRatio
Float類型。這個值表示內部環的比例,例如,如果android:innerRadiusRatio = ” 5 “,那麼內部的半徑等於環的寬度除以5。這個值會被android:innerRadius重寫。 默認值是9。
- android:thickness
尺寸。環的厚度,是一個尺寸值或尺寸的資源。
- android:thicknessRatio
Float類型。厚度的比例。例如,如果android:thicknessRatio= ” 2 “,然後厚度等於環的寬度除以2。這個值是被android:innerRadius重寫, 默認值是3。
- android:useLevel
Boolean類型。如果用在 LevelListDrawable裡,那麼就是true。如果通常不出現則為false。

下面一個一個的了解shape的各個子元素。

corners
表示的是矩形的四個角弧度,只能用在android:shape = "rectangle"的時候,可用的屬性包括:

gradient
表示漸變顏色填充。

其中android:type表示漸變的模式,可選的參數包括:
- “linear” 線形漸變。這也是默認的模式
- “radial” 輻射漸變。startColor即輻射中心的顏色
- “sweep” 掃描線漸變。

padding
表示內容與視圖邊界的距離,屬性包括:

size
表示shape的大小,屬性包括:

solid
表示shape填充的顏色,與的漸變功能一樣只是此處填充的是純色。所以一般情況下和只用使用一個就行了。其屬性包括:

stroke
用來表示shape的邊框畫筆,當android:shape="line"的時候,必須設置該元素。

好了,下面我們用GradientDrawable來實現一個自定義的數字輸入鍵盤。此處仿iphone的鎖屏節目的圓形數字輸入按鈕。正常狀態下,是一個有邊框,中間透明圓環,按下時,中間填充顏色。
先實現按鈕的正常狀態,在res/drawable下創建number_button_normal.xml



    
    
    

再定義按下狀態,number_button_press.xml



    
    
    

正常狀態和按下狀態都有了,我們用他們來實現一個簡單的按鈕的背景吧,和平時我們自定義按鈕一樣,通過selector來進行定義。在res/drawable目錄下創建number_button.xml



    
    

OK,萬事具備,就差應用到按鈕了。ok,我們創建一個layout文件如下。


    

此處,說一個小小的技巧,因為此處有10個按鈕,每個按鈕的樣式都是一樣的,所以,我給按鈕建了一個樣式,在要應用的地方直接使用style="@style/number_button"制定樣式就行了,看看樣式把。按鈕樣式定義在res/values/styles.xml中。

好了,看看效果吧
這裡寫圖片描述
這裡寫圖片描述

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved