我正试图在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)