shape標籤詳解

2021-08-09 05:23:55 字數 2812 閱讀 2330

雖然一些比較日常的效果都能輕鬆使用shape實現,但是一些稍微複雜的效果還是得去查,實在麻煩

寫個文章記錄一下

shapedrawable

是一種很常見的drawable,可以理解為通過顏色來構造的圖形,它既可以是純色的圖形,也可以是具有漸變效果的圖形,shapedrawabled語法如下所示:

乙個乙個的來講,先說說標籤中的android:shape=["rectangle" | "oval" | "line" | "ring"]這個屬性有四個可選項,分別表示rectangle(矩形)oval(橢圓)line(橫線)ring(圓環),預設為rectangle,需要注意line和ring需要通過標籤來指定線的寬度和顏色等資訊,否則無法達到預期效果

接下來是標籤,這個標籤表示圓角,只適用於矩形,即當標籤中的android:shape=rectangle時有效

android:radius—— 給四個角設定相同的角度,優先順序較低,會被其他四個屬性覆蓋 

android:bottomleftradius——設定左下角的角度 

android:bottomrightradius——設定右下角的角度

android:topleftradius——設定左上角的角度 

android:toprightradius——設定右上角的角度

效果圖如下:

**分別如下:

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

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

其中標籤表示填充顏色,稍後講

接下來是標籤,這個標籤表示填充顏色,只有乙個屬性android:color="color"

說到標籤就必須說一說標籤

標籤表示漸變色,他與是互相排斥的

他可以設定2色漸變也可以設定為三色漸變,語法如下:

//使用levellistdrawable時就要設定為true。設為false時才有漸變效果

//虛線的間隔
上面各個屬性的意義如下:

直接上**和效果圖

這兩個基本上不怎麼用,因為他們所具有的功能,控制項本身也能實現。

size:是用來定義圖形的大小的。

padding:用來定義內部邊距

再寫幾個看起來比較屌的用法

做乙個漸變色圓環

以下屬性只能在android:shape="ring"的時候使用:

屬性意義

android:innerradius

尺寸,內環的半徑

android:thickness

尺寸,環的厚度

android:innerradiusratio

浮點型,以環的寬度比率來表示內環的半徑, 例如,如果android:innerradiusratio=5,表示內環半徑等於環的寬度除以5,這個值是可以被android:innerradius的值覆蓋,預設為9.

android:thicknessratio

浮點型,以環的寬度比率來表示環的厚度,例如,如果android:thicknessratio=2, 那麼環的厚度就等於環的寬度除以2。這個值是可以被android:thickness覆蓋的,預設值是3.

android:uselevel

boolean值,如果當做是levellistdrawable使用時值為true,否則為false.這個值一般為false,否則你的環可能不會出現

底部的線

這裡的《item》每乙個都可以表示乙個drawable,top,bottom,left,right表示item在四個方向上的偏移量,可以理解為類似於padding的效果

Shape 詳解和運用

最近太忙了,幾乎每天都在做專案 在我們開發中,會經常遇到shape這種屬性,這種屬性可以在沒有美工的情況照樣可以實現我們想要的效果。自動動手,豐衣足食。描述rectangle 矩形 預設 oval 橢圓line 直線ring 環形基本屬性 描述corners 圓角solid 內部填充顏色 gradi...

android開發之shape詳解

首先,使用shape畫的圖形,這個xml檔案的根節點是shape,如下 shape取值有四種,可以是rectangle 長方形 oval 橢圓 line 線條 ring 圓環 如果設定的話預設是長方形,只有當我們要畫的圖形是ring的時候,下面這幾個屬性才會生效 android innerradiu...

Android中shape屬性詳解

shape的形狀,預設為矩形,可以設定為矩形 rectangle 橢圓形 oval 線性形狀 line 環形 ring android shape rectangle oval line ring android radius dimension 全部的圓角半徑android topleftradi...