设置TextView 的URL链接地址颜色以及触发事件方法


 public void setTextViewHtmlLink(TextView tv , String assertHtmlFile){

    String htmltxt =  null;

        try{

if (htmltxt == null) {

InputStream is = this.getAssets().open(assertHtmlFile,AssetManager.ACCESS_BUFFER);

htmltxt = new String(Util.IS2ByteArray(is));

}

tv.setText(Html.fromHtml(htmltxt));

tv.setMovementMethod(LinkMovementMethod.getInstance());  

CharSequence text  =  tv.getText();     

        if (text instanceof Spannable){     

            int  end  =  text.length();     

           Spannable sp  =  (Spannable)tv.getText();     

           URLSpan[] urls = sp.getSpans( 0 , end, URLSpan.class );      

           SpannableStringBuilder style = new  SpannableStringBuilder(text);     

           style.clearSpans(); // should clear old spans      

            for (URLSpan url : urls){     

               MyURLSpan myURLSpan  =   new  MyURLSpan(url.getURL());             

               style.setSpan(myURLSpan,sp.getSpanStart(url),sp.getSpanEnd(url),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

               style.setSpan(new ForegroundColorSpan(Color.rgb(244, 115, 33)), sp.getSpanStart(url),sp.getSpanEnd(url),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

               // style.setSpan(new BackgroundColorSpan(Color.rgb(244, 115, 33)), sp.getSpanStart(url),sp.getSpanEnd(url),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

            }     

            tv.setText(style);     

       }     

}catch(Exception e){

tv.setText("");

}

    }

private  class MyURLSpan extends ClickableSpan {

  private String mUrl;

  MyURLSpan(String url) {

   mUrl = url;

  }

  @Override

  public void onClick(View widget) {

  // Toast.makeText(LoginActivity.this, mUrl, Toast.LENGTH_LONG).show();

   //send intent

  // widget.setBackgroundColor(Color.parseColor("#00000000"));

   Intent sendIntent = new Intent(Intent.ACTION_SEND);

   sendIntent.setType("text/html");

   sendIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{mUrl}); 

sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Get the Tullett Support");

LoginActivity.this.startActivity(Intent.createChooser(sendIntent, "Email via:"));

  }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值