Android中在TextView里面替换掉带html标签和不带标签的url,并支持点击

来源:互联网 发布:手机超牛数据恢复软件 编辑:程序博客网 时间:2024/04/29 09:16

直接上代码

                String textStr = "文字内容"
                int end = textStr.length();
                Spannable sp = (Spannable) Html.fromHtml(textStr);
                URLSpan[] urls = sp.getSpans(0, end, URLSpan.class);
                SpannableStringBuilder style = new SpannableStringBuilder(sp);
                style.clearSpans();
                if (urls != null && urls.length > 0) {
                    for (URLSpan url : urls) {
                        MyURLSpan myURLSpan = new MyURLSpan(url.getURL());
                        style.setSpan(myURLSpan, sp.getSpanStart(url), sp.getSpanEnd(url), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
                    }
                } else {

style = new SpannableStringBuilder(textStr);style.clearSpans();

                    Pattern pattern = Pattern.compile("(https?|codoon)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]");
                    Matcher matcher = pattern.matcher(textStr);
                    while (matcher.find()) {
                        int startAt = matcher.start();
                        int endAt = matcher.end();
                        MyURLSpan myURLSpan = new MyURLSpan(textStr.substring(startAt, endAt));
                        style.setSpan(myURLSpan, startAt, endAt, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

style.replace(startAt,endAt,"链接");

                    }


                }

0 0
原创粉丝点击