package com.weikou.beibeivideo.util.ui;
|
|
import android.content.Context;
|
import android.content.Intent;
|
import android.text.Html;
|
import android.text.SpannableStringBuilder;
|
import android.text.Spanned;
|
import android.text.TextPaint;
|
import android.text.style.ClickableSpan;
|
import android.text.style.URLSpan;
|
import android.view.View;
|
|
import com.weikou.beibeivideo.ui.mine.BrowserActivity;
|
|
public class TextViewUtil {
|
|
/**
|
* 获取可以点击的html内容
|
*
|
* @param html
|
* @param context
|
* @return
|
*/
|
public static CharSequence getClickableHtml(String html, Context context, Integer color,Class browserClazz) {
|
Spanned spannedHtml = Html.fromHtml(html);
|
SpannableStringBuilder clickableHtmlBuilder = new SpannableStringBuilder(spannedHtml);
|
URLSpan[] urls = clickableHtmlBuilder.getSpans(0, spannedHtml.length(), URLSpan.class);
|
for (final URLSpan span : urls) {
|
setLinkClickable(clickableHtmlBuilder, span, context, color,browserClazz);
|
}
|
return clickableHtmlBuilder;
|
}
|
|
/**
|
* 设置点击超链接对应的处理内容
|
*/
|
private static void setLinkClickable(final SpannableStringBuilder clickableHtmlBuilder, final URLSpan urlSpan, final Context context, final Integer linkColor,Class browserClazz) {
|
int start = clickableHtmlBuilder.getSpanStart(urlSpan);
|
int end = clickableHtmlBuilder.getSpanEnd(urlSpan);
|
int flags = clickableHtmlBuilder.getSpanFlags(urlSpan);
|
|
ClickableSpan clickableSpan = new ClickableSpan() {
|
public void onClick(View view) {
|
context.startActivity(new Intent(context,browserClazz).putExtra("url", urlSpan.getURL()));
|
}
|
|
public void updateDrawState(TextPaint ds) {
|
if (linkColor != null)
|
ds.setColor(linkColor);
|
// //设置是否要下划线
|
ds.setUnderlineText(false);
|
}
|
};
|
clickableHtmlBuilder.setSpan(clickableSpan, start, end, flags);
|
}
|
|
}
|