【Android】Spannable实现文字高亮

不杀蚂蚁非为爱惜蚂蚁之命,乃为爱护自己的心,使勿养成残忍。                        ——丰子恺

【Android】Spannable实现文字高亮_第1张图片


 正文 

/**
     *
     * @param context
     * @param content  字符串内容
     * @param highLight  字符串中高亮部分
     * @param color  高亮颜色
     * @return
     */
    public static SpannableString getSpannable(Context context, CharSequence content, CharSequence highLight, int color) {
        if (content == null) {
            return new SpannableString("");
        }
        String contentStr = content.toString();
        String highLightStr = highLight.toString();
        SpannableString spannableString = new SpannableString(content.toString());
        ForegroundColorSpan span = new ForegroundColorSpan(context.getResources().getColor(color));
        int start = contentStr.indexOf(highLightStr);
        spannableString.setSpan(span, start, start + highLightStr.length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
        return spannableString;
    }

效果


 

知识拓展

Android TextView中的文字通过SpannableString,设置不同的颜色,字体,不同文字段的点击事件

你可能感兴趣的:(android)