Android開發中難免用到自定義的資源文件,其中很重要的便是Shape文件,Shape文件可以用來定義任意形狀,常常用來做背景色等。
創新互聯是專業的簡陽網站建設公司,簡陽接單;提供網站制作、網站建設,網頁設計,網站設計,建網站,PHP網站建設等專業做網站服務;采用PHP框架,可快速的進行簡陽網站開發網頁制作和功能擴展;專業做搜索引擎喜愛的網站,專業的做網站團隊,希望更多企業前來合作!Shape文件實際上也是.xml,其根元素是shape。下面將詳細介紹Shape文件中各種元素和屬性的含義。
根元素<shape>指定基本形狀
shape屬性指定基本形狀,允許的值有:rectangle(矩形),oval(橢圓),line(線條), ring(環)。默認的值是矩形,下面的代碼定義了一個矩形:
<?xml version="1.0" encoding="utf-8"?> <shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android" > </shape>
visible屬性設置形狀是否初始可見。
僅當形狀定義為ring時,下列屬性才可用:
innerRadius指定內環(即中空的洞)的半徑,接收Dimension類型。
innerRadiusRatio為浮點型,以環的寬度比率來表示內環的半徑,例如,如果android:innerRadiusRatio,表示內環半徑等于環的寬度除以5,這個值是可以被覆蓋的,默認為9.
thickness指定環的厚度,類型為Dimension。
thickne***atio也為浮點型,以環的寬度比率來表示環的厚度,例如,如果該值為"2",那么環的厚度就等于環的寬度除以2。這個值是可以被android:thickness覆蓋的,默認值是3.
關于useLevel請參加下節<gradient>。
<gradient>設置漸變填充
startcolor、centercolor、endcolor設置漸變的起止色,即允許設置兩次漸變。
angle設置漸變的角度,僅當漸變類型為線性漸變時有效。默認0值為水平向右,其他角度以逆時針旋轉為準,例如設置為90則是自下而上,設置為270自上而下,以此類推。注意:必須是45的倍數。
type設置漸變類型,默認是linear(線性漸變),如果設置為radial(放射/徑向漸變),則必須同時設置gradientRadius屬性,該屬性指定漸變半徑,注意:這個半徑并不是Dimension,不接受dp等單位,只能設置數字。此外還可以設置一個比較有意思的方式:sweep(掃描漸變)。三種漸變方式的效果見下圖。
centerX、centerY兩個屬性用于設置漸變的中心點位置,僅當漸變類型為放射漸變時有效,類型為分數或小數,不接受Dimension。默認值是0.5,有效值是0.0~1.0,超出該范圍后會看不出漸變效果。
useLevel屬性通常不使用。該屬性用于指定是否將該shape當成一個LevelListDrawable來使用,默認值為false。
下面的代碼定義了一個線性的上下漸變:
<gradient android:startColor="#67CC24" android:endColor="#3E9010" android:angle="270" />
<solid>設置純色填充
這個元素本身沒什么好說的,既然是純色填充,只有color一個屬性。
注意:如果同一份文件同時指定漸變和純色填充,則順序在后面的會覆蓋掉前面的設置!
<size>指定尺寸
使用width、height分別設置寬高,類型為Dimension。
注意:Shape文件即使指定了size,默認情況下在使用時也會縮放到其容器的大小。如果在ImageView中使用,可以使用android:scaleType進行縮放的限制。
<stroke>描邊
當定義的形狀為line(線條)時,該屬性為必選項,設置線條的樣式。當形狀為其他形狀時,該元素起描邊的作用。
width指定邊框的寬度(Dimension),color指定邊框顏色,只接受color類型。
我們還可以設置虛線邊框:使用dashGap設置虛線之間的間隔,dashWidth設置每根虛線'-'的長度(為什么Google不把這個叫做Length?我也不知道)。僅當這兩個屬性都設置時虛線效果才生效。
下面的代碼定義了一個藍色虛線邊框:
<stroke android:color="#0000FF" android:width="5dp" android:dashGap="3dp" android:dashWidth="10dp"/>
<corners>設置圓角
僅當形狀為矩形時該元素才生效。topLeftRadius、topRightRadius、bottomLeftRadius、bottomRightRadius四個屬性分別設置四個角,radius則統一設置(四個角相同)。下面的代碼設置了四個相同的圓角:
<corners android:radius="10dp"/>
<padding>設置邊距
該元素的含義請參照android:layout_paddingLeft等屬性。共有四個方向left、right、top、bottom可以設置,但沒有提供統一設置的屬性。
以上介紹了Shape文件的所有可用元素和屬性,但要真正用好shape,還要多寫多用才行。如有描述錯誤或不妥的地方,歡迎各位批評指正。
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
分享標題:Androidshape文件屬性詳解-創新互聯
網頁鏈接:http://www.yijiale78.com/article44/cdpghe.html
成都網站建設公司_創新互聯,為您提供網站維護、App設計、虛擬主機、微信小程序、ChatGPT、營銷型網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯