Android 控件布局實現卡片效果,陰影效果

android 從5.0開始码泛,Material Design風格盛行猾封,這一次真的從UI交互上把ios按在地上摩擦,作為我們android 開發(fā)者噪珊,當然也要認真學習MD控件晌缘,包括

  • TextInputLayout
  • CardView
  • SwitchCompat
  • SnackBar
  • FloatingActionButton
    以及更多的齐莲,這里本文主要講類似實現cardView 卡片式效果的方法,比cardView更簡單的那種


    image.png

cardView我用的很多磷箕,不過感覺還是比較麻煩的,需要記住以下屬性

app:cardBackgroundColor這是設置背景顏色 
app:cardCornerRadius這是設置圓角大小 
app:cardElevation這是設置z軸的陰影 
app:cardMaxElevation這是設置z軸的最大高度值 
app:cardUseCompatPadding是否使用CompatPadding 
app:cardPreventCornerOverlap是否使用PreventCornerOverlap 
app:contentPadding 設置內容的padding 
app:contentPaddingLeft 設置內容的左padding 
app:contentPaddingTop 設置內容的上padding 
app:contentPaddingRight 設置內容的右padding 
app:contentPaddingBottom 設置內容的底padding

使用cardView作為容器选酗,里面就可以包裹控件,從而實現卡片式效果搀捷,也是支持陰影的星掰,但是,我要說的嫩舟,cardView布局更簡單氢烘!

<LinearLayout
                android:layout_width="match_parent"
                android:layout_height="77dp"
                android:layout_marginLeft="15dp"
                android:layout_marginTop="10dp"
                android:layout_marginRight="15dp"
                android:background="@drawable/shape_popwin_bg_white"
                android:elevation="3dp"
                android:outlineProvider="bounds"
                android:translationZ="3dp">

在5.0版本以上,任意的viewgroup 組件家厌,像LinearLayout播玖,ScrollView,ConstraintLayout等等布局中饭于,只需要加入三個屬性即可蜀踏,

  • android:elevation="3dp"
  • android:outlineProvider="bounds"
  • android:translationZ="3dp"
  • android:background="@drawable/shape_popwin_bg_white"

background是一個圓形圓角shape,這里就不貼了
MD設計里面掰吕,視圖可以投射陰影果覆, elevation 值決定了陰影的大小和順序。通俗來講殖熟,就是elevation是一個權重局待,是陰影的初始值,是在靜態(tài)的菱属,相應的钳榨,translationZ則是動態(tài)值,是在Z軸上的偏移變化纽门,陰影效果薛耻,其實就是抬高控件的Z軸赏陵,使之呈現立體的感覺饼齿,那么久可以很好地顯示陰影。
Z=elevation+translationZ
這樣是不是就好理解了呢蝙搔?我們來看一下效果圖

image.png

是不是已經有了卡片效果的感覺候醒,更重要的是比使用CardView 更加簡單高效!
但是如果運行到真機杂瘸,仔細觀察,你會發(fā)現伙菊,雖然我們的shape是圓角的败玉,但是敌土,圓角下面的陰影居然是尖角的,這個問題运翼,讓我一時間摸不著頭腦返干,難道是shape的問題?
一番嘗試后我發(fā)現原來是outlineProvider屬性的問題血淌,那么我們來學習下這個屬性

outlineProvider用來指定輪廓的判定方式

image.png

通過編輯器可以看出矩欠,總共有四種指判方式:

  • none 即使設置了Z屬性,也不會顯示陰影
  • background 會按照背景來設置陰影形狀
  • bounds 會按照View的大小來描繪陰影
  • paddedBounds 和bounds類似悠夯,不過陰影會稍微向右偏移一點


    image.png
image.png

原來設置了bounds 癌淮,輪廓會按照view的大小來繪制陰影,這也就不難解釋沦补,為什么設置了圓角shape后乳蓄,陰影依然存在尖角問題,哈哈夕膀,現在你明白了嗎虚倒?
如果你的陰影效果沒顯示,那么我建議你從以下幾個方面檢查

  • 是否是設置在ViewGrop控件上
  • 是否留夠了邊距用來顯示陰影
  • 是否設置了背景色产舞,最好是用shape
  • 是否開啟了硬件加速
    OK,就是這樣魂奥,以后就愉快地使用陰影效果吧!
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末易猫,一起剝皮案震驚了整個濱河市耻煤,隨后出現的幾起案子,更是在濱河造成了極大的恐慌擦囊,老刑警劉巖违霞,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異瞬场,居然都是意外死亡买鸽,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門贯被,熙熙樓的掌柜王于貴愁眉苦臉地迎上來眼五,“玉大人,你說我怎么就攤上這事彤灶】从祝” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵幌陕,是天一觀的道長诵姜。 經常有香客問我,道長搏熄,這世上最難降的妖魔是什么棚唆? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任暇赤,我火速辦了婚禮,結果婚禮上宵凌,老公的妹妹穿的比我還像新娘鞋囊。我一直安慰自己,他們只是感情好瞎惫,可當我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布溜腐。 她就那樣靜靜地躺著,像睡著了一般瓜喇。 火紅的嫁衣襯著肌膚如雪挺益。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天欠橘,我揣著相機與錄音矩肩,去河邊找鬼。 笑死肃续,一個胖子當著我的面吹牛黍檩,可吹牛的內容都是我干的。 我是一名探鬼主播始锚,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼刽酱,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了瞧捌?” 一聲冷哼從身側響起棵里,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎姐呐,沒想到半個月后殿怜,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡曙砂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年头谜,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鸠澈。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡柱告,死狀恐怖,靈堂內的尸體忽然破棺而出笑陈,到底是詐尸還是另有隱情际度,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布涵妥,位于F島的核電站乖菱,受9級特大地震影響,放射性物質發(fā)生泄漏。R本人自食惡果不足惜窒所,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一娜氏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧墩新,春花似錦、人聲如沸窟坐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽哲鸳。三九已至臣疑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間徙菠,已是汗流浹背讯沈。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留婿奔,地道東北人缺狠。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像萍摊,于是被迫代替她去往敵國和親挤茄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,925評論 2 344