Android中shape的使用

2021-07-06 09:36:17 字數 3981 閱讀 4997

android中常常需要用到一些邊框、背景之類的素材,而這些很多時候不是通過美工人員p圖得到的,而是通過shape標籤來實現的。今天就**一下shape到底怎麼用以及相關的一些特性。

本來想在網上找點簡單易懂的中文解釋,搜了半天沒看到,於是乎就上android官網上看了看,官網的解釋是:

an xml file that defines a geometric shape, including colors and gradients.
大概意思就是:一種定義形狀的xml檔案,包括顏色、漸變。其實還包括圓角、內間距、邊框等。總之是一種用於定義形狀資源的檔案。

舉乙個小例子先看看

<?xml version="1.0" encoding="utf-8"?>

xmlns:android=""

android:shape="rectangle" >

android:width="2dp"

android:color="#ffffff"

/>

android:radius="8dp"

/>

android:color="#00000000"

/>

shape>

作為背景用於textview

android:background="@drawable/recetegle_textview"
<?xml version="1.0" encoding="utf-8"?>

xmlns:android=""

android:shape="rectangle" >

shape>

這是shape檔案的基本格式。

根標籤是shape,其中屬性:android:shape="……"是必要屬性,它規定shape的基本形狀。

它可選的值如下:

rectangle//矩形

oval //橢圓

line

//線ring //圓環

android:innerradius="dimension"             //內環的半徑。

android:innerradiusratio="float" //這個值表示內部環的比例,例如,如果android:innerradiusratio = " 5 ",那麼內部的半徑等於環的寬度除以5。這個值會被android:innerradius重寫。 預設值是9。

android:thickness="dimension" //環的厚度.

android:thicknessratio="float" //厚度的比例。例如,如果android:thicknessratio= " 2 ",然後厚度等於環的寬度除以2。這個值是被android:innerradius重寫, 預設值是3。

android:uselevel="boolean" //如果用在 levellistdrawable裡,那麼就是true。如果通常不出現則為false。

自屬性是包含在shape內部的一些屬性,主要包括:

corners //圓角

gradient//漸變

padding //內邊距

size

//大小

solid //填充

stroke

//邊框

"dimension"

//圓角,比如8dp、5dp等等

android:topleftradius="dimension"

//左上圓角,比如8dp、5dp等等

android:toprightradius="dimension"

//右上圓角,比如8dp、5dp等等

android:bottomleftradius="dimension"

//左下圓角,比如8dp、5dp等等

android:bottomrightradius="dimension" />//左下圓角,比如8dp、5dp等等

"integer"

//漸變角度,預設為0,即從左向右,90為從下向上。值必須是45的倍數

android:centerx="float"

//漸變中心x,相對位置與整個shape的x的相對位置,取值範圍0.0~1.0

android:centery="float"

//同x

android:centercolor="color"

//介於end和start之間的顏色

android:endcolor="color"

//結束顏色

android:gradientradius="integer"

//漸變半徑,只有當type="radial"時生效

android:startcolor="color"

//開始顏色

android:type="linear"

//漸變模式,可選的值有:linear線型,radial放射型,sweep範圍型(這個真不知道怎麼翻譯)

android:uselevel="boolean" /> //使用級別,預設為false,當用於levellistdrawable時設為true。

"dimension"

//左 android:top="dimension"

//上 android:right="dimension"

//左

android:bottom="dimension" />//下

android:width="dimension"

//寬 android:height="dimension" /> //高

color="color" /> //填充顏色
android:width="dimension"

//邊框寬

android:color="color"

//邊框顏色

android:dashwidth="dimension"

//虛線寬度,只有當設定了dashgap時有效

android:dashgap="dimension" /> //虛線間距,只有當設定了dashwidth時有效

shapedrawable是乙個drawable的子類用與繪製原始的shape。這裡不再展開了。

需要詳細了解的同學看這裡

shape是乙個很好的繪製的工具,如果用好了,可以繪製出很棒的效果。

我畫了個球,哈哈哈。

關於android裡面Shape屬性的使用

shape屬性 shape的中文意思是模型,形狀。android裡面的shape也是這個意思,它的存在就是為了為給使用者自定義圖形的提供解決方案。總而言之,你可以用它自定義做一些一些簡單的圖形。好像扯的有點多,嗯嗯,好吧,直接說用法吧 在工程上右鍵新建android xml檔案進入建立頁面,選擇re...

android使用shape使元件呈現特殊效果

android radius 10dp android startcolor 33cc00 android endcolor 666600 android angle 45 android left 5dp android top 5dp android right 5dp android bott...

Android中shape的使用

本人在美工方面一直是比較白痴的,對於一些顏色什麼亂七八糟的非常頭痛,但是在android程式設計中這又是經常涉及到的東西,沒辦法,只有硬著頭皮上。android中常常使用shape來定義控制項的一些顯示屬性,今天看了一些shape的使用,對shape有了大體的了解,稍作總結 先看下面的 solid ...