package Ġcom . nat ura . android . card Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Typed Array Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . core . content . res . getResource Id OrThrow Ċ import Ġcom . google . android . material . card . Material Card View Ċ import Ġcom . nat ura . android . R Ċ Ċ /** Ċ Ġ* ĠThe Ġcard Ġis Ġa Ġcontainer Ġwith Ġrounded Ġcorners Ġand Ġshadow Ġbased Ġon Ġits Ġelevation , Ġwhich Ġis Ġbased Ġon Ġthe ĠCard View Ġcomponent . Ċ Ġ* ĠIt Ġinvolves Ġa Ġlayout Ġand Ġcan Ġbe Ġused Ġto Ġgroup Ġstatic Ġcontent , Ġor Ġit Ġcan Ġalso Ġbe Ġused Ġfor Ġeach Ġitem Ġin Ġa ĠListView Ġor ĠRecyclerView . Ċ Ġ* ĠThe Ġvisibility Ġof Ġthe Ġradius Ġand Ġelevation Ġattributes Ġare Ġconfigurable , Ċ Ġ* Ġso Ġthat Ġwhen Ġenabled Radius Ġor Ġenabled Elevation Ġare Ġfalse Ġvalues , Ġthe ĠCard Ġwill Ġnot Ġhave Ġthese Ġcharacteristics . Ċ Ġ* ĠCard Ġis Ġavailable Ġat Ġversion Ġ 5 . 4 . 0 Ġof ĠNat DS ĠAndroid . Ċ Ġ* Ċ Ġ* Ġ``` Ċ Ġ* Ġ< com . nat ura . android . card . Card ĊĠĠĠĠĠĠĠ Ġandroid : id ="@ + id / card " ĊĠĠĠĠĠĠĠ Ġandroid : layout _ width =" match _ parent " ĊĠĠĠĠĠĠĠ Ġandroid : layout _ height =" wrap _ content " ĊĠĠĠĠĠĠĠ Ġapp : enabled Radius =" true " ĊĠĠĠĠĠĠĠ Ġapp : enabled Elevation =" true "> Ċ Ċ </ com . nat ura . android . card . Card > Ċ Ġ* ``` Ċ Ġ*/ Ċ Ċ class ĠCard Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġprivate Ġval Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠ Ġdef Style Attr : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠMaterial Card View ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġcard Attributes Array : ĠTyped Array ĊĠĠĠ Ġprivate Ġvar Ġelevation Attribute : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġradius Attribute : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar ĠbackgroundColor Resource Attribute : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġradius Resource Attribute : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġelevation Resource Attribute : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġcard Attributes Array Ġ= Ġcontext . obtain Styled Attributes ( attrs , ĠR . style able . Card ) ĊĊĠĠĠĠĠĠĠ Ġget Card Attributes () ĊĠĠĠĠĠĠĠ Ġconfigure Appearance () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Enabled Radius (): ĠBoolean Ġ= Ġradius Attribute ĊĊĠĠĠ Ġfun Ġget Enabled Elevation (): ĠBoolean Ġ= Ġelevation Attribute ĊĊĠĠĠ Ġprivate Ġfun Ġget Card Attributes () Ġ{ ĊĠĠĠĠĠĠĠ Ġradius Attribute Ġ= Ġcard Attributes Array . getBoolean ( R . style able . Card _ enabled Radius , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġelevation Attribute Ġ= Ġcard Attributes Array . getBoolean ( R . style able . Card _ enabled Elevation , Ġtrue ) ĊĊĠĠĠĠĠĠĠ Ġcard Attributes Array . recycle () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconfigure Appearance () Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. theme ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. obtain Styled Attributes ( attrs , ĠR . style able . Card , ĠR . attr . card , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbackgroundColor Resource Attribute Ġ= Ġthis . getResource Id OrThrow ( R . style able . Card _ color Background ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelevation Resource Attribute Ġ= Ġthis . getResource Id OrThrow ( R . style able . Card _ custom Elevation ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġradius Resource Attribute Ġ= Ġthis . getResource Id OrThrow ( R . style able . Card _ custom Radius ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġthis . set Card BackgroundColor ( Context Compat . getColor ( context , ĠbackgroundColor Resource Attribute )) ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! radius Attribute ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . radius Ġ= Ġ 0 F ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . radius Ġ= Ġresources . get Dimension ( radius Resource Attribute ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! elevation Attribute ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . elevation Ġ= Ġ 0 F ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . elevation Ġ= Ġresources . get Dimension ( elevation Resource Attribute ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ