android開發之shape詳解

2021-07-06 04:17:31 字數 1476 閱讀 1921

首先,使用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檔案中用的一樣,我這裡就不多說了。

Android開發 Shape詳細解讀

日常開發中,我們會遇到一些button textview.等控制項的背景是圓角矩形 圓形.等,和android預設的控制項背景矩形不一致,此時shape的作用就體現出來了,我們可以根據shape屬性畫出很多我們意想不到的背景圖案,下面我會把所有shape的屬性都介紹一下。本文參考自 android ...

Android之shape的使用

在android開發中,使用shape標籤可以很方便的幫助我們自定義繪製簡單的形狀,一般可用於繪製控制項的背景,如按鈕或文字框背景,也經常用於設定布局的背景,其用法不難但是功能作用卻很強大。相對於png來說,使用shape可以減少安裝包的大小,而且能夠更好的適配不同的手機。xmlns android...

Android之XML的shape使用

android中常常使用shape來定義控制項的一些顯示屬性,今天看了一些shape的使用,對shape有了大體的了解,稍作總結 先看下面的 solid 實心,就是填充的意思 android color指定填充的顏色 gradient 漸變 android startcolor和android en...