小编Man*_*uel的帖子

Android TextView:如何将文本放在行中的特定位置上方/设置ReplacementScan子类的高度

我正试图在TextView中用和弦显示歌词.为此,我需要在正文的特定部分上方放置字母或符号.到目前为止,我的想法是将ReplacementSpan子类化为:

import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Paint.FontMetricsInt;
import android.text.style.ReplacementSpan;

public class ChordSpan extends ReplacementSpan {

    String chord;

    public ChordSpan(String chord) {
        super();

        this.chord = chord;
    }

    @Override
    public void draw(Canvas canvas,
        CharSequence text, int start, int end,
        float x, int top, int y, int bottom,
        Paint paint) {

        FontMetricsInt fm = paint.getFontMetricsInt();
        int space = fm.ascent-fm.descent+fm.leading;

        canvas.drawText(text, start, end, x, y, paint);
        canvas.drawText(chord, x, y+space, paint);
    }

    @Override
    public int getSize(Paint paint, CharSequence text, int start, int end,
        FontMetricsInt fm) …
Run Code Online (Sandbox Code Playgroud)

android textview

3
推荐指数
1
解决办法
1950
查看次数

标签 统计

android ×1

textview ×1