android - 设置字母间距的字符样式/跨度

标签 android textview

TextView.setLetterSpacing允许设置字母间距/字符间距。

有没有对应的CharacterStyle / span class允许在 TextView?

中的文本子集上设置字母间距

最佳答案

所以我通过编写自己的 span 类解决了这个问题,它适用于 API 级别 21 及更高级别。

import android.annotation.TargetApi;
import android.content.Context;
import android.os.Parcel;
import android.text.TextPaint;
import android.text.style.MetricAffectingSpan;

/**
 * Created by alex on 19/02/2015.
 */
@TargetApi(21)
public class LetterSpacingSpan extends MetricAffectingSpan {
    private float letterSpacing;

    /**
     * @param letterSpacing
     */
    public LetterSpacingSpan(float letterSpacing) {
        this.letterSpacing = letterSpacing;
    }

    public float getLetterSpacing() {
        return letterSpacing;
    }

    @Override
    public void updateDrawState(TextPaint ds) {
        apply(ds);
    }

    @Override
    public void updateMeasureState(TextPaint paint) {
        apply(paint);
    }

    private void apply(TextPaint paint) {
        paint.setLetterSpacing(letterSpacing);
    }

}

关于android - 设置字母间距的字符样式/跨度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28562590/

相关文章:

java - Android 获取从一个 GeoPoint 到另一个 GeoPoint 的到达时间

android - GridLayout 越界

android - 当我更改卡片 View 的背景时,角半径被重置

android - 相对布局,Textview 不显示

java - 为什么我不能让这些计算显示在 TextView 上?

android - 如何从 Adapter 设置 LiveData?

带有双破折号的 Android XML 注释

android - 如何在 android 的 textview 中对齐文本并正确对齐

android - TextView 重力不适用于 API 18 或更高版本

textview中的android闪烁字符