Android SpannableStringBuilder改变某部分字体
16lz
2021-01-23
/** * 改变TextView部分字体的颜色 * * @param originalValue 整个字符串 * @param indexValue 需要改变的字 * @param color 改变的颜色 * @return */public static SpannableStringBuilder setTextViewColor(String originalValue, String indexValue, int color) { SpannableStringBuilder builder = new SpannableStringBuilder(originalValue); if (TextUtils.isEmpty(originalValue)) { return builder; } for (int j = 0; j < originalValue.length(); j++) { if (j + indexValue.length() <= originalValue.length()) { String name = (String) originalValue.subSequence(j, j + indexValue.length()); if (name.equals(indexValue)) { ForegroundColorSpan redSpan = new ForegroundColorSpan(color); builder.setSpan(redSpan, j, j + indexValue.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } } } return builder;}
/** * 改变TextView部分字体的颜色和大小 * * @param originalValue 整个字符串 * @param indexValue 需要改的部分 * @param color 需要改变的颜色 * @param size 需要改变的字体大小 * @param mIsBold 需要改变的字体是否加粗 * @return */public static SpannableStringBuilder setTextViewColorAndSize(String originalValue, String indexValue, int color, int size, boolean mIsBold) { SpannableStringBuilder builder = new SpannableStringBuilder(originalValue); if (TextUtils.isEmpty(originalValue)) { return builder; } for (int j = 0; j < originalValue.length(); j++) { if (j + indexValue.length() <= originalValue.length()) { String name = (String) originalValue.subSequence(j, j + indexValue.length()); if (name.equals(indexValue)) { ForegroundColorSpan redSpan = new ForegroundColorSpan(color); builder.setSpan(new AbsoluteSizeSpan(size), j, j + indexValue.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); int typeface; if (!mIsBold) { typeface = Typeface.NORMAL; } else { typeface = Typeface.BOLD; } builder.setSpan(new StyleSpan(typeface), j, j + indexValue.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); builder.setSpan(redSpan, j, j + indexValue.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } } } return builder;}
点击链接加入群聊【编程之美】:https://jq.qq.com/?_wv=1027&k=9qYaAE3t
更多相关文章
- android默认字体大小、高度、宽度
- Android字体Font相关知识
- Android TextView里显示两种颜色
- Android TextView 字体加粗
- android 按钮按下效果(文字颜色和按钮同时变化)
- 【android】设置View字体点击变色和边框背景设置
- Android Studio中Textview里字体颜色的的设置
- android实现ios形式的字体,实现各种自定义的字体
- 如何改变Android Progressbar默认颜色