Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android開發之shape詳解

android開發之shape詳解

編輯:關於Android編程

很多時候,使用shape能夠實現的效果,你用一張圖片也能夠實現,但問題是一張圖片無論你怎麼壓縮,它都不可能比一個xml文件小,因此,為了獲得一個高性能的手機App,我們在開發中應該遵循這樣一個原則:能夠用shape實現的效果盡量不使用圖片來實現。


今天我們就一起來看看shape的使用。

首先,使用shape畫的圖形,這個xml文件的根節點是shape,如下:

 

 

shape取值有四種,可以是rectangle(長方形),oval(橢圓),line(線條),ring(圓環),如果設置的話默認是長方形,只有當我們要畫的圖形是ring的時候,下面這幾個屬性才會生效:


android:innerRadius:內環的半徑。android:innerRadiusRatio:內環的比例,比如這個值為2,那麼內環的半徑就為環半徑除以2,如果設置了第一個屬性,則這個屬性不起作用。android:thickness:環的厚度。android:thicknessRatio:環的厚度比例,比如這個值為2,那麼環的厚度就為環半徑除以2,如果設置了第三個屬性,則這個屬性不起作用。android:useLevel:只有當我們的shape使用在LevelListDrawable中的時候,這個值為true,否則為false。

 

以上是shape節點,在shape節點中我們還可以定義其他的節點:

 

圓角:

 


android:radius表示長方形四個角的半徑,當然也可以每個角單獨設定,後面單獨設定的圓角半徑會覆蓋android:radius。

 

 

漸變:

 

    

 

 

android:angle=90表示漸變的起始位置,這個值必須為45的倍數,包括0,0表示從左往右漸變,逆時針旋轉,依次是45,90,135.....,90表示從下往上漸變,270表示從上往下漸變,剩下的大家依次去推理。android:startColor=#9AFF9A,表示漸變的起始顏色android:centerColor=#9ACD32表示漸變的過渡顏色android:endColor=#9AC0CD表示漸變的結束顏色type表示漸變的類型,有三種,分別是linear(線性變化),radial(輻射漸變)以及sweep(掃描漸變)當type為radial時,我們要設置android:gradientRadius=,這個表示漸變的半徑(線性漸變和掃描漸變不需要設置)

 

填充:

 


這個比較簡單,不多說。

 

 

描邊:

 


 

android:dashWidth表示虛線的寬度android:dashGap表示虛線之間的間隔以上兩個屬性如果不設置則為實線

 

大小:

 

 


這個表示該shape的大小,默認情況下,shape的大小與它所在的容器大小成正比。如果我們在ImageView中使用這個shape,那麼可以通過android:scaleType=center屬性來限制這種縮放。

 

當然,還有一種padding,這和我們在xml文件中用的一樣,我這裡就不多說了。

 

最後,基於以上幾種特性,我做了以下幾種效果供大家參考。

 

/

 

 

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