view輪廓
簡(jiǎn)介:在5.0之前,我們的視圖都是二維的,只有x軸和y軸,現(xiàn)在,android新增了z軸。x軸和y軸描述了一個(gè)view的大小和位置,而z軸描述了view在父視圖上抬起的視覺,體現(xiàn)效果就是陰影。(5.0之前給view添加陰影效果都是給view設(shè)置一個(gè)帶陰影的背景圖,現(xiàn)在只需設(shè)置Z屬性)
1.View的Z屬性可以通過elevation和translationZ進(jìn)行修改。
? ? z = elevation+translationZ
? ? Z屬性不僅影響著view的陰影效果,還影響著view的繪制順序,在同一個(gè)父view內(nèi)部,Z屬性越小,繪制的時(shí)機(jī)就越早。
2.在Android的世界里,所有的View都是矩形的。View增加了一個(gè)新的描述來指明內(nèi)容顯示的形狀,這就是輪廓。
? ?通過shape設(shè)置的背景,根據(jù)shape的形狀進(jìn)行輪廓判定
? ?通過color設(shè)置的背景,View默認(rèn)其輪廓和View的大小一樣
? ?通過圖片進(jìn)行背景設(shè)置,View則無法獲知輪廓的形狀,需由我們指定
? ?View的輪廓可以通過outlineProvider屬性設(shè)置,默認(rèn)是依據(jù)于background的
? ? ? ? none:即使設(shè)置了evaluation也不顯示陰影
? ? ? ? background:按背景來顯示輪廓,如果background是顏色值,則輪廓就是view的大小,如果是shape,則按shape指定的形狀作為輪廓
? ? ? ? bounds: View的矩形大小作輪廓
? ? ? ? paddedBounds: View的矩形大小減去padding的值后的大小作輪廓。
? ? ? ? 注意:如果background是圖片,那只能通過代碼setOutlineProvider()來指定輪廓
View裁剪
簡(jiǎn)介:View的裁剪是指將View按照輪廓裁剪,能改變View的形狀,如圓形頭像
? ? ? ? ? ?先設(shè)置輪廓,再設(shè)置根據(jù)輪廓裁剪View,目前只支持對(duì)矩形,圓形,圓角矩形的裁剪