ConstraintLayout 2.0新特性解析(二)-- Layer層布局,圓角視圖

前言

Layer層布局和Flow流式布局都屬于ConstraintHelper輔助工具類的一種枚荣,而Layer層布局可以幫我們解決多個View的共同背景色碗脊、動畫等問題,也是非常實用的一個類橄妆,Layer本質(zhì)是一個View衙伶,不會有層級嵌套的問題祈坠。
系列文章:
ConstraintLayout 2.0新特性解析(一)--Flow流式布局
ConstraintLayout 2.0新特性解析(二)-- Layer層布局,圓角視圖
ConstraintLayout 2.0新特性解析(三)-- MockView UI原型布局矢劲,Space邊距補償赦拘,MotionLayout動畫

Layer--背景色

Layer本質(zhì)是一個View,可以給多個視圖設(shè)置共同的背景或者動畫卧须。設(shè)置背景的話跟直接使用View占位在ConstraintLayout設(shè)置背景是一個道理另绩,只是控制起來更靈活,更方便花嘶。
比如我們要給一個TextView和ImageView共同的背景色笋籽,相當于一個卡片背景色,這在項目中其實是很常見的:


圖1

之前的做法是寫一個View占位椭员,當TextView和ImageView的背景车海,那么現(xiàn)在我們就可以用Layer實現(xiàn)了:

<androidx.constraintlayout.helper.widget.Layer
        android:id="@+id/layer"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:constraint_referenced_ids="text,image"
        app:layout_constraintBottom_toBottomOf="@id/image"
                android:background="@android:color/holo_blue_light"
        app:layout_constraintLeft_toLeftOf="@id/text"
        app:layout_constraintRight_toRightOf="@id/image"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:text="我是ABC"
        android:textColor="@android:color/black"
        android:textSize="21sp"
        app:layout_constraintBottom_toBottomOf="@id/image"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toTopOf="parent" />


    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:src="@mipmap/ic_launcher"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

效果如圖:

圖2

想要擴展整個背景面板也很簡單,給Layer設(shè)置一個Padding就行了:
android:padding="10dp"隘击,就變成這樣了:
圖3

因為本質(zhì)Layer是一個View侍芝,所以給Layer設(shè)置點擊事件也相當于給整個卡片Item設(shè)置一個點擊事件,非常Nice埋同。

Layer--動畫

Layer也可以給約束的View設(shè)置共同的動畫州叠,本質(zhì)是給每個View設(shè)置動畫,只是更便捷了一些凶赁,與Layer自身沒有關(guān)系咧栗,Layer只是一個約束輔助類。

ConstraintHelper

如果Flow和Layer都滿足不了需求虱肄,我們還可以繼承ConstraintHelper來實現(xiàn)特殊的需求致板。
ConstraintHelper有幾個方法可以供我們實現(xiàn):

    public void updatePostLayout(ConstraintLayout container) {
    }

    public void updatePostMeasure(ConstraintLayout container) {
    }

    public void updatePostConstraints(ConstraintLayout constainer) {
    }

    public void updatePreDraw(ConstraintLayout container) {
    }

封裝好了之后,跟Layer一樣使用就行了咏窿。

圓角ImageFilterView,ImageFilterButton

印象中這應(yīng)該是第一次官方提供具有圓角功能的view了吧集嵌,除了圓角功能外,ImageFilterView平斩,ImageFilterButton還有一堆其他的功能咽块。

  • 圓角 app:round绘面,取值0-50dp,默認0晚凿,就是方形,設(shè)置50就是圓形圖片歼秽,超過50沒其他意義情组,還是圓形圖片。
  • 圓角比例 app:roundPercent院崇,取值0-1之間,默認0就是方形底瓣,1是圓形圖片,同上拨扶,超過1按照1處理,還是圓形圖片患民。
  • 交叉圖 app:altSrc垦梆,需要跟app:crossfade共同使用酒奶,app:crossfade取值0-1,默認0為交叉圖完全透明奶赔,不展示杠氢。取值1交叉圖完全展示,覆蓋到src上鼻百。
    app:overlay,官方釋義:定義alt圖像是在原始圖像的頂部淡入温艇,還是與其交叉淡入。默認值為true勺爱。對于半透明對象設(shè)置為false。我沒試過效果。
  • 色溫 app:warmt人灼,float型顾翼,默認值1,小于1是冷色調(diào)适贸,大于1是暖色調(diào)。
  • 亮度 app:brightness拜姿,float型,默認1砾隅,值越大亮度越高。
  • 飽和度 app:brightness晴埂,float型,默認1精耐,取值0為灰階樣式,大于1的數(shù)值都是超飽和狀態(tài)卦停,色彩非常艷麗恼蓬,有點辣眼睛惊完。
  • 對比度 app:contrast处硬,float型,默認1荷辕,取值0相當于圖片變?nèi)冢笥?都是高對比度狀態(tài)控嗜。

結(jié)語

都是些實用控件,有官方的就不需要自定義那么麻煩了骡显。
下一篇:ConstraintLayout 2.0新特性解析(三)-- MockView UI原型布局曾掂,Space邊距補償承边,MotionLayout動畫

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末博助,一起剝皮案震驚了整個濱河市险污,隨后出現(xiàn)的幾起案子富岳,更是在濱河造成了極大的恐慌,老刑警劉巖窖式,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異淮逻,居然都是意外死亡,警方通過查閱死者的電腦和手機爬早,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門启妹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來筛严,“玉大人饶米,你說我怎么就攤上這事∶适洌” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵网杆,是天一觀的道長伊滋。 經(jīng)常有香客問我队秩,道長笑旺,這世上最難降的妖魔是什么馍资? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任筒主,我火速辦了婚禮,結(jié)果婚禮上乌妙,老公的妹妹穿的比我還像新娘。我一直安慰自己虐沥,他們只是感情好,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布泽艘。 她就那樣靜靜地躺著,像睡著了一般匹涮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上喜每,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天雳攘,我揣著相機與錄音,去河邊找鬼来农。 笑死鞋真,一個胖子當著我的面吹牛沃于,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播檩互,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼咨演!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起薄风,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤遭赂,失蹤者是張志新(化名)和其女友劉穎循诉,沒想到半個月后撇他,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體狈蚤,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年脆侮,在試婚紗的時候發(fā)現(xiàn)自己被綠了勇劣。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡筋蓖,死狀恐怖退敦,靈堂內(nèi)的尸體忽然破棺而出粘咖,到底是詐尸還是另有隱情侈百,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布讽坏,位于F島的核電站例证,受9級特大地震影響路呜,放射性物質(zhì)發(fā)生泄漏织咧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一抵屿、第九天 我趴在偏房一處隱蔽的房頂上張望捅位。 院中可真熱鬧,春花似錦艇搀、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至档插,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間郭膛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留棍现,地道東北人己肮。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓谎僻,卻偏偏與公主長得像,于是被迫代替她去往敵國和親赤拒。 傳聞我的和親對象是個殘疾皇子诱鞠,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

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