package Ġcn . l vs ong . lib . library . view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Color State List Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . util . Typed Value Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . widget . Check able Ċ import Ġandroid . widget . Relative Layout Ċ import Ġandroidx . annotation . Color Res Ċ import Ġandroidx . appcompat . widget . AppCompat ImageView Ċ import Ġandroidx . appcompat . widget . AppCompat TextView Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġcn . l vs ong . lib . library . R Ċ Ċ /** Ċ Ġ* Ġhttps :// github . com / y ux ing xin / Tint State Image / blob / master / library / src / main / res / values / attrs . xml Ġ Ġ--> Ġget Color State List Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠDesc : Ġé»ĺè®¤ ä¸º å·¦ åı³ ç»ĵæŀĦ ï¼Į åĽ¾çīĩ åľ¨ å·¦ ï¼Į æĸĩåŃĹ åľ¨ åı³ Ċ Ġ* ĠAuthor : ĠJ oo yer Ċ Ġ* ĠDate : Ġ 2 0 1 9 - 0 5 - 2 4 Ċ Ġ* ĠTime : Ġ 2 3 : 1 2 Ċ Ġ*/ Ċ /* ĠçĶ¨ æ³ķ : ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< cn . l vs ong . lib . library . view . Left Img And Right TextView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : id ="@ + id / li rt _ test " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : layout _ width =" wrap _ content " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : layout _ height ="@ dim en / height _ 5 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : layout _ margin Top ="@ dim en / padding _ 1 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp : li rt _ icon _ drawable ="@ drawable / ic _ baseline _ alarm _ add _ 2 4 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp : li rt _ icon _ drawable _ checked ="@ drawable / ic _ baseline _ assignment _ returned _ 2 4 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp : li rt _ text _ color ="@ color / color _ 9 9 9 9 9 9 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp : li rt _ text _ color _ checked ="@ color / color _ 3 3 3 3 3 3 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp : li rt _ back _ color ="@ color / color _ DDDD DD " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp : li rt _ back _ color _ checked ="@ color / color _ 8 A 8 EA 3 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp : li rt _ icon _ width ="@ dim en / width _ 2 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp : li rt _ icon _ height ="@ dim en / height _ 2 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp : li rt _ spacing ="@ dim en / padding _ 1 5 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp : li rt _ text _ size ="@ dim en / text _ size _ 1 4 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp : li rt _ text _ info =" å·¦ è¾¹ åĽ¾çīĩ , åı³ è¾¹ æĸĩåŃĹ , çĤ¹åĩ» è¯ķ è¯ķ " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp : li rt _ checked =" false " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/> ĊĊ Ġ*/ Ċ class ĠLeft Img And Right TextView ( context : ĠContext , Ġattr : ĠAttributeSet ) Ġ: ĠRelative Layout ( context , Ġattr ), ĊĠĠĠ ĠCheck able Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åĽ¾çīĩ æĺ¾ç¤º æİ§ä»¶ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġiv Icon : ĠAppCompat ImageView ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĸĩæľ¬ æĺ¾ç¤º æİ§ä»¶ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġtv Content : ĠAppCompat TextView ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠView çļĦ èĥĮæĻ¯ èī² ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġback Color Ġ= Ġ 0 ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠView è¢« æĮī ä¸ĭ æĹ¶çļĦ èĥĮæĻ¯ èī² ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġback Color Checked Ġ= Ġ 0 ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġicon çļĦ èĥĮæĻ¯ åĽ¾çīĩ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġicon Drawable : ĠDrawable ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġicon è¢« æĮī ä¸ĭ æĹ¶ æĺ¾ç¤º çļĦ èĥĮæĻ¯ åĽ¾çīĩ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġicon Drawable Checked : ĠDrawable ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åĽ¾çīĩ å®½åº¦ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġm Img Width Ġ= Ġ 0 ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* åĽ¾çīĩ é«ĺåº¦ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġm Img Height Ġ= Ġ 0 ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠView æĸĩåŃĹ çļĦ é¢ľèī² ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar ĠtextColor : ĠColor State List ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠView è¢« æĮī ä¸ĭ æĹ¶ æĸĩåŃĹ çļĦ é¢ľèī² ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar ĠtextColor Checked : ĠColor State List ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ä¸ĢèĪ¬ æĸĩæľ¬ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġm Text Info : ĠString ? Ġ= Ġ"" ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ éĢī ä¸Ń åĲİ æĸĩæľ¬ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġm Checked Text Info : ĠString ? Ġ= Ġ"" ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ä¸¤ä¸ª æİ§ä»¶ ä¹ĭéĹ´çļĦ éĹ´ è·Ŀ ï¼Į é»ĺè®¤ä¸º 8 dp ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġspacing Ġ= Ġ 8 ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ä¸¤ä¸ª æİ§ä»¶ çļĦ ä½įç½® ç»ĵæŀĦ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġm Position Ġ= ĠSTYLE _ ICON _ LEFT ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæĺ¯åĲ¦ è¢« éĢī ä¸Ń ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġis Checked Ġ= Ġfalse ĊĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ// åĬłè½½ å¸ĥå±Ģ ĊĠĠĠĠĠĠĠ ĠLayoutInflater . from ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . common _ ui _ left _ image _ right _ text _ view , Ġthis , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ// åĪĿå§ĭåĮĸ æİ§ä»¶ ĊĠĠĠĠĠĠĠ Ġiv Icon Ġ= ĠfindViewById ( R . id . iv _ icon ) ĊĠĠĠĠĠĠĠ Ġtv Content Ġ= ĠfindViewById ( R . id . tv _ content ) ĊĠĠĠĠĠĠĠ Ġgravity Ġ= ĠGr avity . CENTER ĊĠĠĠĠĠĠĠ Ġparse ( context , Ġattr ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġparse ( context : ĠContext , Ġattrs : ĠAttributeSet ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġarr Ġ= ĠgetContext (). obtain Styled Attributes ( attrs , ĠR . style able . Left Img And Right TextView ) ĊĊĠĠĠĠĠĠĠ Ġis Checked Ġ= Ġarr . getBoolean ( R . style able . Left Img And Right TextView _ li rt _ checked , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® æŃ£å¸¸ èĥĮæĻ¯ èī² ĊĠĠĠĠĠĠĠ Ġval Ġcolor List Ġ= Ġarr . getColor State List ( R . style able . Left Img And Right TextView _ li rt _ back _ color ) ĊĠĠĠĠĠĠĠ Ġif Ġ( color List Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġback Color Ġ= Ġcolor List . getColor For State ( drawable State , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// è¢« æĮī ä¸ĭ æĹ¶çļĦ èĥĮæĻ¯ èī² ĊĠĠĠĠĠĠĠ Ġval Ġcolor List Checked Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarr . getColor State List ( R . style able . Left Img And Right TextView _ li rt _ back _ color _ checked ) ĊĠĠĠĠĠĠĠ Ġif Ġ( color List Checked Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġback Color Checked Ġ= Ġcolor List Checked . getColor For State ( drawable State , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® ĠImageView Ġ æŃ£å¸¸ åĽ¾çīĩ ĊĠĠĠĠĠĠĠ Ġicon Drawable Ġ= Ġarr . get Drawable ( R . style able . Left Img And Right TextView _ li rt _ icon _ drawable ) ĊĠĠĠĠĠĠĠ Ġ// ĠImageView è¢« æĮī ä¸ĭ æĹ¶çļĦ åĽ¾çīĩ ĊĠĠĠĠĠĠĠ Ġicon Drawable Checked Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarr . get Drawable ( R . style able . Left Img And Right TextView _ li rt _ icon _ drawable _ checked ) ĊĊĠĠĠĠĠĠĠ Ġm Img Width Ġ= Ġarr . get Dimension Pixel Offset ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Left Img And Right TextView _ li rt _ icon _ width , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdp 2 px ( context , Ġ 3 0 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġm Img Height Ġ= Ġarr . get Dimension Pixel Offset ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Left Img And Right TextView _ li rt _ icon _ height , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdp 2 px ( context , Ġ 3 0 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® ĠTextView Ġ æĸĩåŃĹ çļĦ é¢ľèī² ĊĠĠĠĠĠĠĠ ĠtextColor Ġ= Ġarr . getColor State List ( R . style able . Left Img And Right TextView _ li rt _ text _ color ) ĊĠĠĠĠĠĠĠ Ġ// ĠTextView è¢« æĮī ä¸ĭ æĹ¶ æĸĩåŃĹ çļĦ é¢ľèī² ĊĠĠĠĠĠĠĠ ĠtextColor Checked Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarr . getColor State List ( R . style able . Left Img And Right TextView _ li rt _ text _ color _ checked ) ĊĠĠĠĠĠĠĠ Ġ// æĸĩæľ¬ åĨħå®¹ ĊĠĠĠĠĠĠĠ Ġm Text Info Ġ= Ġarr . getString ( R . style able . Left Img And Right TextView _ li rt _ text _ info ) ĊĠĠĠĠĠĠĠ Ġm Checked Text Info Ġ= Ġarr . getString ( R . style able . Left Img And Right TextView _ li rt _ text _ info _ checked ) ĊĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® æĸĩæľ¬ åŃĹ ä½ĵ å¤§å°ı ĊĠĠĠĠĠĠĠ Ġval Ġtext Size Ġ= Ġarr . get Dimension Pixel Size ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Left Img And Right TextView _ li rt _ text _ size , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdp 2 px ( context , Ġ 1 4 ) ĊĠĠĠĠĠĠĠ Ġ). toFloat () ĊĠĠĠĠĠĠĠ Ġtv Content . setText Size ( Typed Value . COMPLEX _ UNIT _ PX , Ġtext Size ) ĊĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® ä¸¤ä¸ª æİ§ä»¶ ä¹ĭéĹ´çļĦ éĹ´ è·Ŀ ĊĠĠĠĠĠĠĠ Ġspacing Ġ= Ġarr . get Dimension Pixel Size ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Left Img And Right TextView _ li rt _ spacing , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdp 2 px ( context , Ġ 8 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® ä¸¤ä¸ª æİ§ä»¶ çļĦ ä½įç½® ç»ĵæŀĦ ĊĠĠĠĠĠĠĠ Ġm Position Ġ= Ġarr . getInt ( R . style able . Left Img And Right TextView _ li rt _ icon _ location , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ// Ġ æİ¥ è¿ĳ äºİ Ping F ang ĠSC ĠMedium çļĦ æķĪæŀľ ĊĠĠĠĠĠĠĠ Ġtv Content . paint . is Fake Bold Text Ġ= Ġarr . getBoolean ( R . style able . Left Img And Right TextView _ li rt _ bold _ text , Ġtrue ) ĊĊĠĠĠĠĠĠĠ Ġset Checked ( isChecked ) ĊĠĠĠĠĠĠĠ Ġset Icon Position ( m Position ) ĊĊĠĠĠĠĠĠĠ Ġarr . recycle () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® åĽ¾ æłĩ ä½įç½® ĊĠĠĠĠ Ġ* ĠéĢļè¿ĩ éĩį ç½® LayoutParams æĿ¥ è®¾ç½® ä¸¤ä¸ª æİ§ä»¶ çļĦ æĳ Ĩ æĶ¾ ä½įç½® ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġposition Ġ--> Ġ åıĸ åĢ¼ : Ġ{@ link ĠSTYLE _ ICON _ LEFT , STYLE _ ICON _ RIGHT , STYLE _ ICON _ UP , STYLE _ ICON _ DOWN } ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Icon Position ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Position Ġ= Ġposition ĊĠĠĠĠĠĠĠ Ġvar Ġlp : ĠLayout Params ĊĠĠĠĠĠĠĠ Ġwhen Ġ( position ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSTYLE _ ICON _ LEFT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp Ġ= ĠLayout Params ( m Img Width , Ġm Img Height ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp . add Rule ( CENTER _ VERTICAL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiv Icon . layout Params Ġ= Ġlp ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp Ġ= ĠLayout Params ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Params . WRAP _ CONTENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Params . WRAP _ CONTENT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp . add Rule ( CENTER _ VERTICAL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp . add Rule ( RIGHT _ OF , Ġiv Icon . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp . left Margin Ġ= Ġspacing ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Content . layout Params Ġ= Ġlp ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSTYLE _ ICON _ RIGHT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp Ġ= ĠLayout Params ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Params . WRAP _ CONTENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Params . WRAP _ CONTENT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp . add Rule ( CENTER _ VERTICAL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Content . layout Params Ġ= Ġlp ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp Ġ= ĠLayout Params ( m Img Width , Ġm Img Height ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp . add Rule ( CENTER _ VERTICAL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp . add Rule ( RIGHT _ OF , Ġtv Content . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp . left Margin Ġ= Ġspacing ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiv Icon . layout Params Ġ= Ġlp ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSTYLE _ ICON _ UP Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp Ġ= ĠLayout Params ( m Img Width , Ġm Img Height ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp . add Rule ( CENTER _ HORIZONTAL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiv Icon . layout Params Ġ= Ġlp ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp Ġ= ĠLayout Params ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Params . WRAP _ CONTENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Params . WRAP _ CONTENT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp . add Rule ( CENTER _ HORIZONTAL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp . add Rule ( BE LOW , Ġiv Icon . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp . top Margin Ġ= Ġspacing ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Content . layout Params Ġ= Ġlp ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSTYLE _ ICON _ DOWN Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp Ġ= ĠLayout Params ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Params . WRAP _ CONTENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Params . WRAP _ CONTENT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp . add Rule ( CENTER _ HORIZONTAL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Content . layout Params Ġ= Ġlp ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp Ġ= ĠLayout Params ( m Img Width , Ġm Img Height ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp . add Rule ( CENTER _ HORIZONTAL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp . add Rule ( BE LOW , Ġtv Content . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp . top Margin Ġ= Ġspacing ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiv Icon . layout Params Ġ= Ġlp ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® åĽ¾çīĩ å®½åº¦ ĊĠĠĠĠ Ġ* Ġ@ param Ġwidth Ġ åĽ¾çīĩ å®½åº¦ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Image Width ( width : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Img Width Ġ= Ġwidth ĊĠĠĠĠĠĠĠ Ġset Icon Position ( m Position ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® åĽ¾çīĩ é«ĺåº¦ ĊĠĠĠĠ Ġ* Ġ@ param Ġheight Ġ åĽ¾çīĩ é«ĺåº¦ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Image Height ( height : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Img Height Ġ= Ġheight ĊĠĠĠĠĠĠĠ Ġset Icon Position ( m Position ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® æİ§ä»¶ èĥĮæĻ¯ èī² ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġback Color ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset BackColor (@ Color Res Ġback Color : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . back Color Ġ= ĠContext Compat . getColor ( context , Ġback Color ) ĊĠĠĠĠĠĠĠ Ġset BackgroundColor ( this . back Color ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® æİ§ä»¶ è¢« æĮī ä¸ĭ æĹ¶çļĦ èĥĮæĻ¯ èī² ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġback Color Checked ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset BackColor Checked (@ Color Res Ġback Color Checked : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . back Color Checked Ġ= Ġback Color Checked ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® icon çļĦ åĽ¾çīĩ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġicon Drawable ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Icon Drawable ( icon Drawable : ĠDrawable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . icon Drawable Ġ= Ġicon Drawable ĊĠĠĠĠĠĠĠ Ġiv Icon . setImage Drawable ( icon Drawable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® è¢« æĮī ä¸ĭ æĹ¶çļĦ icon çļĦ åĽ¾çīĩ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġicon Drawable Checked ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Icon Drawable Checked ( icon Drawable Checked : ĠDrawable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . icon Drawable Checked Ġ= Ġicon Drawable Checked ĊĠĠĠĠĠĠĠ Ġiv Icon . setImage Drawable ( icon Drawable Checked ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® æĸĩåŃĹ çļĦ é¢ľèī² ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠtextColor ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset TextColor (@ Color Res ĠtextColor : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( textColor Ġ== Ġ 0 ) Ġreturn ĊĠĠĠĠĠĠĠ Ġthis . textColor Ġ= ĠColor State List . valueOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextColor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġtv Content . setTextColor ( this . textColor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® è¢« æĮī ä¸ĭ æĹ¶ æĸĩåŃĹ çļĦ é¢ľèī² ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠtextColor Checked ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset TextColor Checked (@ Color Res ĠtextColor Checked : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( textColor Checked Ġ== Ġ 0 ) Ġreturn ĊĠĠĠĠĠĠĠ Ġthis . textColor Checked Ġ= ĠColor State List . valueOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextColor Checked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® éĢī ä¸ŃçļĦ æĸĩæľ¬ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Checked Text Info ( text : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Checked Text Info Ġ= Ġtext ĊĠĠĠĠĠĠĠ Ġset Checked ( isChecked ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® æĻ®éĢļ æĸĩæľ¬ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Text Info ( text : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Text Info Ġ= Ġtext ĊĠĠĠĠĠĠĠ Ġset Checked ( isChecked ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® Ġä¸Ń åĪĴ çº¿ / ä¸ĭ åĪĴ çº¿ ĊĠĠĠĠ Ġ* Ġeg : Ġä¸Ń åĪĴ çº¿ Ġ--> ĠPaint . STRI KE _ TH RU _ TEXT _ FLAG . or ( Paint . ANTI _ ALIAS _ FLAG ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Text Paint Flags ( flags : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtv Content . paint . flags Ġ= Ġflags ĊĠĠĠĠĠĠĠ Ġset Checked ( isChecked ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® æĸĩæľ¬ åŃĹ ä½ĵ å¤§å°ı ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġsize ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Text Size ( size : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtv Content . text Size Ġ= Ġsize ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® ä¸¤ä¸ª æİ§ä»¶ ä¹ĭéĹ´çļĦ éĹ´ è·Ŀ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġspacing Ġ--> Ġ åįķä½į dp ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Spacing ( spacing : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . spacing Ġ= Ġdp 2 px ( context , Ġspacing ) ĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® å®ĮæĪĲ åĲİ åĪ·æĸ° ä¸Ģä¸ĭ ä¸¤ä¸ª æİ§ä»¶ çļĦ ç»ĵæŀĦ ï¼Į éģ¿åħį åħĪ æī§è¡Į äºĨ setIcon Style åĲİ ï¼Į set Spacing ä¸į çĶŁ æķĪ ĊĠĠĠĠĠĠĠ Ġset Icon Position ( m Position ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdp 2 px ( context : ĠContext , Ġspacing : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠTyped Value . apply Dimension ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTyped Value . COMPLEX _ UNIT _ DIP , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspacing . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . resources . display Metrics ĊĠĠĠĠĠĠĠ Ġ). toInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® æĺ¯åĲ¦ éĢī ä¸Ń ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġset Checked ( checked : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis Checked Ġ= Ġchecked ĊĠĠĠĠĠĠĠ Ġif Ġ( isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( back Color Checked Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset BackgroundColor ( back Color Checked ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( icon Drawable Checked Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiv Icon . setImage Drawable ( icon Drawable Checked ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( textColor Checked Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Content . setTextColor ( textColor Checked ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! TextUtils . isEmpty ( m Checked Text Info )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Content . text Ġ= Ġm Checked Text Info ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( back Color Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset BackgroundColor ( back Color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( icon Drawable Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiv Icon . setImage Drawable ( icon Drawable ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( textColor Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Content . setTextColor ( textColor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! TextUtils . isEmpty ( m Text Info )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Content . text Ġ= Ġm Text Info ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæĺ¯åĲ¦ éĢī ä¸Ń ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġis Checked (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġis Checked ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åĪĩæį¢ å½ĵåīį check çĬ¶æĢģ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġtoggle () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Checked (! isChecked ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ å·¦ åı³ ç»ĵæŀĦ ï¼Į åĽ¾çīĩ åľ¨ å·¦ ï¼Į æĸĩåŃĹ åľ¨ åı³ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSTYLE _ ICON _ LEFT Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ å·¦ åı³ ç»ĵæŀĦ ï¼Į åĽ¾çīĩ åľ¨ åı³ ï¼Į æĸĩåŃĹ åľ¨ å·¦ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSTYLE _ ICON _ RIGHT Ġ= Ġ 1 ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġä¸Ĭ ä¸ĭ ç»ĵæŀĦ ï¼Į åĽ¾çīĩ åľ¨ ä¸Ĭ ï¼Į æĸĩåŃĹ åľ¨ ä¸ĭ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSTYLE _ ICON _ UP Ġ= Ġ 2 ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġä¸Ĭ ä¸ĭ ç»ĵæŀĦ ï¼Į åĽ¾çīĩ åľ¨ ä¸ĭ ï¼Į æĸĩåŃĹ åľ¨ ä¸Ĭ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSTYLE _ ICON _ DOWN Ġ= Ġ 3 ĊĠĠĠ Ġ} Ċ }