package Ġcom . ang cy o . behavior . link age Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . core . math . Math Utils . clamp Ċ import Ġcom . ang cy o . behavior .* Ċ Ċ /** Ċ Ġ* Ġæ¸ Ĳ åıĺ æłĩé¢ĺ æłı é¢ľèī² çļĦ è¡Įä¸º . Ġ éħį åĲĪ [ Link age Header Behavior ] ä½¿çĶ¨ Ċ Ġ* ĠEmail : ang cy o @ 1 2 6 . com Ċ Ġ* Ġ@ author Ġang cy o Ċ Ġ* Ġ@ date Ġ 2 0 2 0 / 0 3 / 2 4 Ċ Ġ*/ Ċ open Ġclass ĠLink age Gradient Title Behavior ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġattribute Set : ĠAttributeSet ? Ġ= Ġnull Ċ ) Ġ: ĠBase Link age Gradient Behavior ( context , Ġattribute Set ), ĠI Title Bar Behavior Ġ{ ĊĊĠĠĠ Ġ/** æłĩé¢ĺ æİ§ä»¶ çļĦ id , Ġ çĶ¨äºİ åįķ çĭ¬ æĵįä½ľ æİ§åĪ¶ æłĩé¢ĺ æİ§ä»¶ */ ĊĠĠĠ Ġvar Ġtitle Text Id : ĠInt Ġ= Ġ- 1 ĊĊĠĠĠ Ġ/** æłĩé¢ĺ æĸĩæľ¬ æ¸ Ĳ åıĺ å¼Ģå§ĭ çļĦ é¢ľèī² */ ĊĠĠĠ Ġvar Ġtitle TextColor From : ĠInt Ġ= ĠColor . TRANSP ARENT ĊĊĠĠĠ Ġ/** æłĩé¢ĺ æĸĩæľ¬ æ¸ Ĳ åıĺ ç»ĵæĿŁ çļĦ é¢ľèī² */ ĊĠĠĠ Ġvar Ġtitle TextColor To : ĠInt Ġ= ĠColor . BLUE ĊĊĠĠĠ Ġ/** [ title Text Id ] */ ĊĠĠĠ Ġvar Ġback View Id : ĠInt Ġ= Ġ- 1 ĊĊĠĠĠ Ġvar Ġback Icon Color From : ĠInt Ġ= ĠColor . WHITE ĊĠĠĠ Ġvar Ġback Icon Color To : ĠInt Ġ= ĠColor . BLUE ĊĊĠĠĠ Ġ/** åħ¶ä»ĸ [ ImageView ] æİ§ä»¶ åĽ¾ æłĩ é¢ľèī² */ ĊĠĠĠ Ġvar Ġicon Color From : ĠInt Ġ= ĠColor . WHITE ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġback Icon Color From Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġvar Ġicon Color To : ĠInt Ġ= ĠColor . BLUE ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġback Icon Color To Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** æķ´ä¸ª æłĩé¢ĺ æłı èĥĮæĻ¯ é¢ľèī² æ¸ Ĳ åıĺ , Ġå¦Ĥæŀľ èĥĮæĻ¯ ä¸įæĺ¯ Color Drawable , åĪĻ ä½¿çĶ¨ alpha */ ĊĠĠĠ Ġvar ĠbackgroundColor From : ĠInt Ġ= ĠColor . TRANSP ARENT ĊĠĠĠ Ġvar ĠbackgroundColor To : ĠInt Ġ= ĠColor . WHITE ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġarray Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . obtain Styled Attributes ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute Set , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Link age Gradient Title Behavior _ Layout ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġtitle Text Id Ġ= Ġarray . getResource Id ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Link age Gradient Title Behavior _ Layout _ layout _ title _ text _ id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Text Id ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġback View Id Ġ= Ġarray . getResource Id ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Link age Gradient Title Behavior _ Layout _ layout _ title _ back _ id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġback View Id ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġtitle TextColor From Ġ= Ġarray . getColor ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Link age Gradient Title Behavior _ Layout _ layout _ title _ text _ color _ from , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle TextColor From ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġtitle TextColor To Ġ= Ġarray . getColor ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Link age Gradient Title Behavior _ Layout _ layout _ title _ text _ color _ to , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle TextColor To ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠbackgroundColor From Ġ= Ġarray . getColor ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Link age Gradient Title Behavior _ Layout _ layout _ background _ color _ from , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠbackgroundColor From ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠbackgroundColor To Ġ= Ġarray . getColor ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Link age Gradient Title Behavior _ Layout _ layout _ background _ color _ to , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠbackgroundColor To ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġicon Color From Ġ= Ġarray . getColor ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Link age Gradient Title Behavior _ Layout _ layout _ icon _ color _ from , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon Color From ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġicon Color To Ġ= Ġarray . getColor ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Link age Gradient Title Behavior _ Layout _ layout _ icon _ color _ to , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon Color To ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġback Icon Color From Ġ= Ġarray . getColor ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Link age Gradient Title Behavior _ Layout _ layout _ back _ icon _ color _ from , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġback Icon Color From ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġback Icon Color To Ġ= Ġarray . getColor ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Link age Gradient Title Behavior _ Layout _ layout _ back _ icon _ color _ to , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġback Icon Color To ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġarray . recycle () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetContent Exclude Height ( behavior : ĠBase Dep ends Behavior < *> ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġchild View . m H () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetContent Offset Top ( behavior : ĠBase Dep ends Behavior < *> ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġchild View . m H () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** å¼Ģå§ĭ æ¸ Ĳ åıĺ */ ĊĠĠĠ Ġoverride Ġfun Ġon Gradient ( percent : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfraction Ġ= Ġif Ġ( percent Ġ> Ġ 0 ) Ġ 0 f Ġelse Ġclamp (- percent , Ġ 0 f , Ġ 1 f ) ĊĊĠĠĠĠĠĠĠ Ġ// èĥĮæĻ¯ ĊĠĠĠĠĠĠĠ Ġchild View ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( background Ġ== Ġnull Ġ|| Ġbackground Ġis ĠColor Drawable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset BackgroundColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevaluate Color ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfraction , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbackgroundColor From , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbackgroundColor To ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbackground ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalpha Ġ= Ġ( 2 5 5 Ġ* Ġfraction ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( child View Ġis ĠViewGroup ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( child View Ġas ĠViewGroup ). each ( true ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// æĸĩæľ¬ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠTextView Ġ-> Ġif Ġ( it . id Ġ== Ġtitle Text Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . setTextColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevaluate Color ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfraction , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle TextColor From , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle TextColor To ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĽ¾çīĩ icon ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠImageView Ġ-> Ġif Ġ( it . id Ġ== Ġback View Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . setImage Drawable ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . drawable ?. color Filter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevaluate Color ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfraction , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġback Icon Color From , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġback Icon Color To ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . setImage Drawable ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . drawable ?. color Filter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevaluate Color ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfraction , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Color From , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Color To ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }