1

在此处输入图像描述![Image][2] 我试过这段代码

private static class MySpan implements LineHeightSpan {
        private final int height;

        MySpan(int height) {
            this.height = height;
        }

        @Override
        public void chooseHeight(CharSequence text, int start, int end, int spanstartv, int v,
                FontMetricsInt fm) {
            fm.bottom += height;
            fm.descent += height;
        }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        final TextView tv = new TextView(this);
        setContentView(tv);

        tv.setText("Lines:\n", BufferType.EDITABLE);
        appendLine(tv.getEditableText(), "Line 1 = 40\n", 40);
        appendLine(tv.getEditableText(), "Line 2 = 30\n", 30);
        appendLine(tv.getEditableText(), "Line 3 = 20\n", 20);
        appendLine(tv.getEditableText(), "Line 4 = 10\n", 10);

    }

    private void appendLine(Editable text, String string, int height) {
        final int start = text.length();
        text.append(string);
        final int end = text.length();
        text.setSpan(new MySpan(height), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    }

我正在尝试在TextView行之间设置填充,但无法做到。如果我设置 TextView 的背景颜色,如何区分 TextView 中的多行。请指出我正确的方向。我想区分两条线之间的颜色。正如你所看到的,在这张图片中它不起作用..我想要像第一张图片这样的东西,而我得到像第二张图片这样的输出..请帮助我..提前谢谢

4

2 回答 2

1

试试这个方法

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    final TextView tv = new TextView(this);
    tv.setLineSpacing(2, 1); // UPDATE HERE
    setContentView(tv);

    tv.setText("Lines:\n", BufferType.EDITABLE);
    appendLine(tv.getEditableText(), "Line 1 = 40\n", 40);
    appendLine(tv.getEditableText(), "Line 2 = 30\n", 30);
    appendLine(tv.getEditableText(), "Line 3 = 20\n", 20);
    appendLine(tv.getEditableText(), "Line 4 = 10\n", 10);

}
于 2013-09-05T06:16:00.067 回答
0

如果您想分割线并以不同的颜色显示它们,请参考以下链接。

从字符串中拆分文本

将颜色应用于特定文本

于 2013-09-05T06:51:51.840 回答