Android樣式基礎--drawable篇


Author:ProZoom

Hobby:愛折騰硼控、愛思考,想靜靜的ProZoom

Github --- 簡書 --- CSDN --- 關于我


Android有很多種drawable/mipmap類型,在以前动壤,工程目錄里只有drawable,現(xiàn)在用Android Studio開發(fā)的還有mipmap目錄淮逻,其實琼懊,兩者都可以添加圖片,不過經常是建議mipmap放圖片資源爬早,drawable放xmlz資源哼丈,本篇文章將匯總介紹drawable資源。

普通圖片

圖片是最常用的mipmap資源筛严,格式包括:png(推薦)醉旦、jpg(可接受)、gif(不建議)。用圖片資源需要根據(jù)不同屏幕密度提供多張不同尺寸的圖片车胡,它們的關系如下表:

密度分類 密度值范圍 代表分辨率 圖標尺寸 圖片比例
mdpi 120~160dpi 320x480px 48x48px 1
hdpi 160~240dpi 480x800px 72x72px 1.5
xhdpi 240~320dpi 720x1280px 96x96px 2
xxhdpi 320~480dpi 1080x1920px 144x144px 3
xxxhdpi 480~640dpi 1440x2560px 192x192px 4

本來還有一個ldpi的檬输,但現(xiàn)在這種小屏幕的設備基本滅絕了,所以不需要再考慮適配匈棘。如上表所示丧慈,一套圖片一般需要提供5張不同比例的圖片。還好有切圖工具羹饰,可以讓切圖變得簡單伊滋,這里推薦兩款:Cutterman和Cut&Slice me,都是Photoshop下的插件队秩,輸出支持android笑旺、ios和web三種平臺。
使用切圖工具雖然方便了馍资,但還是無法避免一套圖片需要提供多張不同尺寸的圖片筒主,這會加大安裝包的大小。另外鸟蟹,需要對圖片做改動時乌妙,比如換個顏色,必須更換所有尺寸圖片建钥。所以藤韵,建議盡量減少引入圖片,而通過使用shape熊经、layer-list等自己畫泽艘,易于修改和維護,也減少了安裝包大小镐依,適配性也更好匹涮。

bitmap標簽

可以通過bitmap標簽對圖片做一些設置,如平鋪槐壳、拉伸或保持圖片原始大小然低,也可以指定對齊方式∥裉疲看看bitmap標簽的一些屬性吧:

  • android:src 必填項雳攘,指定圖片資源,只能是圖片绍哎,不能是xml定義的drawable資源
  • android:gravity 設置圖片的對齊方式来农,比如在layer-list中,默認會盡量填滿整個視圖崇堰,導致圖片可能會被拉伸,為了避免被拉伸,就可以設置對齊方式海诲,可取值為下面的值繁莹,多個取值可以用 | 分隔:
  • top 圖片放于容器頂部,不改變圖片大小
  • bottom 圖片放于容器底部特幔,不改變圖片大小
  • left 圖片放于容器左邊咨演,不改變圖片大小
  • right 圖片放于容器右邊,不改變圖片大小
  • center 圖片放于容器中心位置蚯斯,包括水平和垂直方向薄风,不改變圖片大小
  • fill 拉伸整張圖片以填滿容器的整個高度和寬度,默認值
  • center_vertical 圖片放于容器垂直方向的中心位置拍嵌,不改變圖片大小
  • center_horizontal 圖片放于容器水平方向的中心位置遭赂,不改變圖片大小
  • fill_vertical 在垂直方向上拉伸圖片以填滿容器的整個高度
  • fill_horizontal 在水平方向上拉伸圖片以填滿容器的整個寬度
  • clip_vertical 附加選項,裁剪基于垂直方向的gravity設置横辆,設置top時會裁剪底部撇他,設置bottom時會裁剪頂部,其他情況會同時裁剪頂部和底部
  • clip_horizontal 附加選項狈蚤,裁剪基于水平方向的gravity設置困肩,設置left時會裁剪右側,設置right時會裁剪左側脆侮,其他情況會同時裁剪左右兩側
  • android:antialias 設置是否開啟抗鋸齒
  • android:dither 設置是否抖動锌畸,圖片與屏幕的像素配置不同時會用到,比如圖片是ARGB 8888的靖避,而屏幕是RGB565
  • android:filter 設置是否允許對圖片進行濾波潭枣,對圖片進行收縮或者延展使用濾波可以獲得平滑的外觀效果
  • android:tint 給圖片著色,比如圖片本來是黑色的筋蓖,著色后可以變成白色
  • android:tileMode 設置圖片平鋪的方式卸耘,取值為下面四種之一:
  • disable 不做任何平鋪,默認設置
  • repeat 圖片重復鋪滿
  • mirror 使用交替鏡像的方式重復圖片的繪制
  • clamp 復制圖片邊緣的顏色來填充容器剩下的空白部分粘咖,比如引入的圖片如果是白色的邊緣蚣抗,那么圖片所在的容器里除了圖片,剩下的空間都會被填充成白色
  • android:alpha 設置圖片的透明度瓮下,取值范圍為0.0~1.0之間翰铡,0.0為全透明,1.0為全不透明讽坏,API Level最低要求是11锭魔,即Android 3.0
  • android:mipMap 設置是否可以使用mipmap,但API Level最低要求是17路呜,即Android 4.2
  • android:autoMirrored 設置圖片是否需要鏡像反轉迷捧,當布局方向是RTL织咧,即從右到左布局時才有用,API Level 19(Android 4.4)才添加的屬性
  • android:tileModeX 和tileMode一樣設置圖片的平鋪方式漠秋,只是這個屬性只設置水平方向的平鋪方式笙蒙,這是API Level 21(Android 5.0)才添加的屬性
  • android:tileModeY 和tileMode一樣設置圖片的平鋪方式,只是這個屬性只設置垂直方向的平鋪方式庆锦,這是API Level 21(Android 5.0)才添加的屬性
  • android:tintMode 著色模式捅位,也是API Level 21(Android 5.0)才添加的屬性

.9 圖片

nine-patch標簽

使用nine-patch標簽可以對點九圖片做一些設置處理,不過可設置的屬性并不多:

  • android:src 必填項搂抒,必須指定點九類型的圖片
  • android:dither 設置是否抖動艇搀,圖片與屏幕的像素配置不同時會用到,比如圖片是ARGB 8888的求晶,而屏幕是RGB565
  • android:tint 給圖片著色焰雕,比如圖片本來是黑色的,著色后可以變成白色
  • android:tintMode 著色模式誉帅,API Level 21(Android 5.0)才添加的屬性
  • android:alpha 設置圖片的透明度淀散,取值范圍為0.0~1.0之間,0.0為全透明蚜锨,1.0為全不透明档插,API Level最低要求是11
  • android:autoMirrored 設置圖片是否需要鏡像反轉,當布局方向是RTL亚再,即從右到左布局時才有用郭膛,API Level 19(Android 4.4)才添加的屬性
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市氛悬,隨后出現(xiàn)的幾起案子则剃,更是在濱河造成了極大的恐慌,老刑警劉巖如捅,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件棍现,死亡現(xiàn)場離奇詭異,居然都是意外死亡镜遣,警方通過查閱死者的電腦和手機己肮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來悲关,“玉大人谎僻,你說我怎么就攤上這事≡⑷瑁” “怎么了艘绍?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長秫筏。 經常有香客問我诱鞠,道長挎挖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任般甲,我火速辦了婚禮肋乍,結果婚禮上鹅颊,老公的妹妹穿的比我還像新娘敷存。我一直安慰自己,他們只是感情好堪伍,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布锚烦。 她就那樣靜靜地躺著,像睡著了一般帝雇。 火紅的嫁衣襯著肌膚如雪涮俄。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天尸闸,我揣著相機與錄音彻亲,去河邊找鬼。 笑死吮廉,一個胖子當著我的面吹牛苞尝,可吹牛的內容都是我干的。 我是一名探鬼主播宦芦,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼宙址,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了调卑?” 一聲冷哼從身側響起抡砂,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎恬涧,沒想到半個月后注益,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡溯捆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年丑搔,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片现使。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡低匙,死狀恐怖,靈堂內的尸體忽然破棺而出碳锈,到底是詐尸還是另有隱情顽冶,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布售碳,位于F島的核電站强重,受9級特大地震影響绞呈,放射性物質發(fā)生泄漏。R本人自食惡果不足惜间景,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一佃声、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧倘要,春花似錦圾亏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至泽西,卻和暖如春曹铃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背捧杉。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工陕见, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人味抖。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓评甜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親非竿。 傳聞我的和親對象是個殘疾皇子蜕着,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,515評論 25 707
  • 概述 今天我們來探究一下android的樣式。其實红柱,幾乎所有的控件都可以使用 background屬性去引用自定義...
    CokeNello閱讀 4,813評論 1 19
  • 轉載自Keegan小鋼并標明原文鏈接:http://keeganlee.me/post/android/20150...
    堅持編程_lyz閱讀 1,112評論 0 1
  • 我很享受得到的感覺 不管是人 還是事物 得到讓我片刻的快樂 后來 你的出現(xiàn)讓我知道 并不是努力就能得到一切 我以為...
    Healer_e8b3閱讀 100評論 0 0
  • 忙碌之余的“小優(yōu)”時光... ... 最近被好多顧客朋友問: “你的皮膚怎么不長痘痘呀” “你的皮膚好有光澤啊” ...
    櫻子ly閱讀 214評論 0 1