Android自定義圖形-Shape的使用

前言

在Android開發(fā)中我們經(jīng)常要改變控件(如Button)的背景蝗砾、顏色先较、樣式等,通常情況下我們可以直接使用不同的圖片來改變控件的樣式悼粮,但是闲勺,如果使用到的圖片特別多、或者比較大扣猫,就會導(dǎo)致我們的APK體積增大菜循,這是非常不友好的。還好Google為我們提供了一套自定義圖形的方法申尤,也就是我們今天的主角Shape 項目源代碼

先來看看效果圖吧癌幕!

Shape的子屬性

shape一共有6個子屬性:solidgradient昧穿、stroke序芦、cornerspadding粤咪、size

屬性 描述
solid 給shape填充背景顏色
gradient 給shape添加背景漸變
stroke 給shape添加邊框
corners 給shape添加圓角
padding 給shape設(shè)置上下左右四個方向的間隔
size 給shape設(shè)置大小

下面通過代碼來逐個講解:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <!-- oval表示橢圓 -->

    <!-- 填充 -->
    <solid android:color="#ffffff" /> <!-- 定義填充的顏色值 -->

    <!-- 漸變 -->
    <gradient
        android:angle="90"
        android:endColor="#00ff00"
        android:startColor="#ff0000"
        android:type="sweep" /> <!-- 漸變屬性 -->

    <!-- 描邊 -->
    <stroke
        android:width="10dp"
        android:color="#0000ff"
        android:dashGap="3dp"
        android:dashWidth="5dp" /> <!-- 定義描邊的寬度和描邊的顏色值 -->

    <!-- 圓角 -->
    <corners
        android:bottomLeftRadius="5dp"
        android:bottomRightRadius="5dp"
        android:topLeftRadius="5dp"
        android:topRightRadius="5dp" /> <!-- 設(shè)置四個角的半徑 -->

    <!-- 間隔 -->
    <padding
        android:bottom="10dp"
        android:left="10dp"
        android:right="10dp"
        android:top="10dp" /> <!-- 設(shè)置各個方向的間隔 -->

    <!-- 大小 -->
    <size
        android:width="300dp"
        android:height="200dp" /> <!-- 定義寬高 -->

</shape>

看看效果

詳細(xì)講解

  • 1谚中、shape自身屬性

android:shape="oval" 表示將此shape的形狀設(shè)置為橢圓形
可以指定的形狀有四種: line線形、oval橢圓形、ring環(huán)形宪塔、rectangle距形

  • 2磁奖、solid屬性

android:color="#ffffff" 填充的顏色,它也就只有這一個屬性值

  • 3某筐、gradient(注意如果將solid的顏色設(shè)置為透明比搭,則gradient的設(shè)置將失效)

android:color="#ffffff" 漸變開始的顏色
android:endColor="#00ff00" 漸變結(jié)束的顏色
android:angle="90" 漸變角度,必須是45的整數(shù)倍
android:type="sweep" 以中心為原點360度掃描式漸變模式
默認(rèn)的漸變模式為 linear 線性漸變 ,還有一種為徑向漸變 radial 南誊,在使用徑向漸變時還需要額外設(shè)定半徑 android:gradientRadius

  • 4身诺、stroke屬性

android:width="10dp" 描邊線寬
android:color="#0000ff" 描邊線的顏色
android:dashWidth="5dp" 表示'-'這樣一個橫線的寬度
android:dashGap="3dp" 間隔的距離

  • 5、corners屬性

android:radius 圓角的半徑抄囚,值越大角越圓
還可以單獨設(shè)置四個角的圓角半徑 android:topLeftRadius ,android:topRightRadius ,android:bottomLeftRadius ,android:bottomRightRadius

  • 6霉赡、padding屬性

可以分別設(shè)置上下左右四個方向的間隔 android:left,android:top,android:right,android:bottom

  • 7、size屬性

android:width="300dp" 設(shè)置shape的寬
android:height="200dp" 設(shè)置shape的高

寫在最后

雖然幔托,shape 的屬性就只有這幾個穴亏,但是,你卻可以使用它們制作出很多你意向不到的效果重挑。請開始你的表演吧嗓化!

如果你在參考過程中遇到問題,可以在我的聯(lián)系方式中給我提問谬哀。

后面會繼續(xù)介紹刺覆,Android的相關(guān)知識,歡迎繼續(xù)關(guān)注我博客的更新

項目源代碼

參考資源

轉(zhuǎn)載請注明:XueLong的博客 ? Android自定義圖形-Shape的使用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末史煎,一起剝皮案震驚了整個濱河市隅津,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌劲室,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件结窘,死亡現(xiàn)場離奇詭異很洋,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)隧枫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進(jìn)店門喉磁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人官脓,你說我怎么就攤上這事协怒。” “怎么了卑笨?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵孕暇,是天一觀的道長。 經(jīng)常有香客問我,道長妖滔,這世上最難降的妖魔是什么隧哮? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮座舍,結(jié)果婚禮上沮翔,老公的妹妹穿的比我還像新娘。我一直安慰自己曲秉,他們只是感情好采蚀,可當(dāng)我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著承二,像睡著了一般榆鼠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上矢洲,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天璧眠,我揣著相機(jī)與錄音,去河邊找鬼读虏。 笑死责静,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的盖桥。 我是一名探鬼主播灾螃,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼揩徊!你這毒婦竟也來了腰鬼?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤塑荒,失蹤者是張志新(化名)和其女友劉穎熄赡,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體齿税,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡彼硫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了凌箕。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拧篮。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖牵舱,靈堂內(nèi)的尸體忽然破棺而出串绩,到底是詐尸還是另有隱情,我是刑警寧澤芜壁,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布礁凡,位于F島的核電站高氮,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏把篓。R本人自食惡果不足惜纫溃,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望韧掩。 院中可真熱鬧紊浩,春花似錦、人聲如沸疗锐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽滑臊。三九已至口芍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間雇卷,已是汗流浹背鬓椭。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留关划,地道東北人小染。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像贮折,于是被迫代替她去往敵國和親裤翩。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容