package Ġcom . feb ers . uest c _ bbs . module . post . view . content . image _ text Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . text . Html Ċ import Ġandroid . text . Sp ann able Ċ import Ġandroid . text . Sp ann able StringBuilder Ċ import Ġandroid . text . style . Clickable Span Ċ import Ġandroid . text . style . ForegroundColor Span Ċ import Ġandroid . text . style . Image Span Ċ import Ġandroid . text . style . Style Span Ċ import Ġandroid . text . style . URL Span Ċ import Ġandroid . text . util . Link ify Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . TextView Ċ Ċ import Ġcom . feb ers . uest c _ bbs . module . context . Click Context Ċ import Ġcom . feb ers . uest c _ bbs . utils . color Accent Ċ Ċ /** Ċ Ġ* Ġ æŀĦå»º åı¯ æĺ¾ç¤º åĽ¾çīĩ çļĦ text view Ċ Ġ* Ġ åıĤèĢĥ ï¼ļ https :// github . com / Cent M eng / Rich TextView Ċ Ġ*/ Ċ object ĠImage Text Helper Ġ{ ĊĊĠĠĠ Ġprivate Ġfun ĠgetUrl Drawable ( source : ĠString ?, ĠtextView : ĠTextView ): ĠDrawable Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimage Getter Ġ= ĠG lide Image Getter ( textView . context , ĠtextView ) ĊĠĠĠĠĠĠĠ Ġreturn Ġimage Getter . get Drawable ( source ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Image Text ( tv : ĠTextView , Ġhtml : ĠString , Ġlink TextColor : ĠInt ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġtv . context ĊĠĠĠĠĠĠĠ Ġval Ġhtml Str Ġ= ĠHtml . from Html ( html ) ĊĊĠĠĠĠĠĠĠ Ġtv . is Clickable Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġtv . setText Is Selectable ( true ) ĊĠĠĠĠĠĠĠ Ġtv . text Ġ= Ġhtml Str ĊĊĠĠĠĠĠĠĠ Ġ// tv . set Movement Method ( Link Movement Method . newInstance ()); ĊĠĠĠĠĠĠĠ Ġ// æį¢ æĪĲ ä¸ĭ éĿ¢çļĦ æĸ¹æ³ķ ï¼Į åĲ¦åĪĻ è¶ħ éĵ¾æİ¥ è®¾ç½® å¤± æķĪ ĊĠĠĠĠĠĠĠ Ġtv . auto Link Mask Ġ= ĠLink ify . WEB _ URL S Ġor ĠLink ify . EMAIL _ ADD RES SES ĊĠĠĠĠĠĠĠ Ġlink TextColor ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv . set Link TextColor ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġtv . text ĊĠĠĠĠĠĠĠ Ġif Ġ( text Ġis ĠSp ann able ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġend Ġ= Ġtext . length ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsp Ġ= Ġtv . text Ġas ĠSp ann able ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurls Ġ= Ġsp . get Spans ( 0 , Ġend , ĠURL Span :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimages Ġ= Ġsp . get Spans ( 0 , Ġend , ĠImage Span :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstyle Spans Ġ= Ġsp . get Spans ( 0 , Ġend , ĠStyle Span :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolor Spans Ġ= Ġsp . get Spans ( 0 , Ġend , ĠFore ground Color Span :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstyle Ġ= ĠSp ann able StringBuilder ( text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle . clear Spans () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( url Ġin Ġurls ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmy Url Span Ġ= ĠMy Url Span ( url . url , Ġcontext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle . set Span ( my Url Span , Ġsp . get Span Start ( url ), Ġsp . get Span End ( url ), ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolor Span Ġ= ĠFore ground Color Span ( color Accent ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle . set Span ( color Span , Ġsp . get Span Start ( url ), Ġsp . get Span End ( url ), ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( url Ġin Ġimages ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspan Ġ= ĠImage Span ( getUrl Drawable ( url . source , Ġtv ), Ġurl . source !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle . set Span ( span , Ġsp . get Span Start ( url ), Ġsp . get Span End ( url ), ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmy Url Span Ġ= ĠMy Url Span ( url . source !! , Ġcontext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle . set Span ( my Url Span , Ġsp . get Span Start ( url ), Ġsp . get Span End ( url ), ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( style Span Ġin Ġstyle Spans ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle . set Span ( style Span , Ġsp . get Span Start ( style Span ), Ġsp . get Span End ( style Span ), ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( color Span Ġin Ġcolor Spans ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle . set Span ( color Span , Ġsp . get Span Start ( color Span ), Ġsp . get Span End ( color Span ), ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv . text Ġ= Ġstyle ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠMy Url Span Ġinternal Ġconstructor ( private Ġval Ġm Url : ĠString , Ġprivate Ġval ĠmContext : ĠContext ) Ġ: ĠClick able Span () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( widget : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠClick Context . link Click ( m Url , ĠmContext ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ