java 用于在android文本上进行字距调整的小辅助函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 用于在android文本上进行字距调整的小辅助函数相关的知识,希望对你有一定的参考价值。

/**
 * Apply kerning to a string
 *
 * @param src       the source string
 * @param kerning   the amount of kerning
 * @return the spannable output
 */
public static Spannable applyKerning(CharSequence src, float kerning) {
    if (src == null) return null;
    final int srcLength = src.length();
    if (srcLength < 2) return src instanceof Spannable
            ? (Spannable) src
            : new SpannableString(src);

    final String nonBreakingSpace = "\u00A0";
    final SpannableStringBuilder builder = src instanceof SpannableStringBuilder
            ? (SpannableStringBuilder) src
            : new SpannableStringBuilder(src);
    for (int i = src.length() - 1; i >= 1; i--) {
        builder.insert(i, nonBreakingSpace);
        builder.setSpan(new ScaleXSpan(kerning), i, i + 1,
                Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    }

    return builder;
}

以上是关于java 用于在android文本上进行字距调整的小辅助函数的主要内容,如果未能解决你的问题,请参考以下文章

带有 itext 的 OpenType 字体字距调整

拉伸和字距调整类型,不适用于带有 @IBDesignable 的 Storyboard

构建用于调整字体中字符的字距和间距的软件[关闭]

使用 Swift 调整 UIBarButtonItem 的字距

是否可以在 SwiftUI 中为 TextField 添加字距调整?

ios:自定义字体的字距调整