package Ġcom . cri ms on . widget . loading Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroidx . appcompat . widget . AppCompat ImageView Ċ import Ġandroidx . appcompat . widget . AppCompat TextView Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġcom . cri ms on . widget . R Ċ Ċ /** Ċ Ġ* Ġ@ author Ġcri ms on Ċ Ġ* Ġ@ date ĠĠĠ 2 0 2 0 - 1 2 - 3 0 Ċ Ġ*/ Ċ class ĠError Layout Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠ Ġdef Style Attr : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠFrame Layout ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval ĠimageView Ġ= ĠAppCompat ImageView ( context ) ĊĠĠĠĠĠĠĠ Ġval ĠtextView Ġ= ĠAppCompat TextView ( context ) ĊĊĠĠĠĠĠĠĠ Ġadd View ( imageView ) ĊĠĠĠĠĠĠĠ Ġadd View ( textView ) ĊĊĠĠĠĠĠĠĠ Ġlayout Params Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Params ( ViewGroup . LayoutParams . MATCH _ PARENT , ĠViewGroup . LayoutParams . MATCH _ PARENT ) ĊĊĠĠĠĠĠĠĠ ĠimageView . apply Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlp Ġ= Ġlayout Params ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlp . width Ġ= Ġdp 2 px ( 4 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlp . height Ġ= Ġdp 2 px ( 4 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( lp Ġis ĠLayout Params ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp . gravity Ġ= ĠGr avity . CENTER ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Image Resource ( R . drawable . icon _ error ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠtextView . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġcontext . resources . getString ( R . string . widget _ loading _ error ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset TextColor ( Context Compat . getColor ( context , ĠR . color . widget _ text _ color _ error )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Size Ġ= Ġ 1 4 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgravity Ġ= ĠGr avity . CENTER ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlp Ġ= Ġlayout Params ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlp . width Ġ= ĠViewGroup . LayoutParams . WRAP _ CONTENT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlp . height Ġ= ĠViewGroup . LayoutParams . WRAP _ CONTENT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( lp Ġis ĠLayout Params ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp . gravity Ġ= ĠGr avity . CENTER ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp . top Margin Ġ= Ġdp 2 px ( 4 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Params Ġ= Ġlp ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġdip Ġto Ġpx ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġdp 2 px ( dp Value : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscale Ġ= Ġcontext ?. resources ?. display Metrics ?. density Ġ?: Ġ 0 f ĊĠĠĠĠĠĠĠ Ġreturn Ġ( dp Value Ġ* Ġscale Ġ+ Ġ 0 . 5 ). toInt () ĊĠĠĠ Ġ} Ċ Ċ }