2
여러 줄 문자열의 각 줄 끝에 범위를 추가하고 싶습니다. 나는 숯을 그려 보려고했으나 줄의 끝 부분에는 아무 것도 나타나지 않았다. 그러나 ImageSpan
이 설정되면 선 높이는 증가 할 수 있지만 선상에는 여전히 이미지가 없습니다.여러 줄 텍스트의 줄 끝에 ImageSpan을 추가하는 방법
private void addSpansAtEnd() {
String s = "First line\nSecond line\Third line\n";
SpannableStringBuilder e = new SpannableStringBuilder(s);
int stop = start + count;
for (int start = -1;
(start = s.indexOf("\n", start)) > -1 && start < stop;
++start) {
e.setSpan(
/*new ImageSpan(getContext(), R.drawable.ic_line),*/
new NewLineSpan(),
start,
start + 1,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
/* Trying to replace \\n with other character. */
private class NewLineSpan extends ReplacementSpan {
@Override
public int getSize(
Paint paint,
CharSequence text,
int start,
int end,
Paint.FontMetricsInt fm) {
return 0;
}
@Override
public void draw(
Canvas canvas,
CharSequence text,
int start,
int end,
float x,
int top,
int y,
int bottom,
Paint paint) {
paint.setColor(0xFF666666);
canvas.drawText("o", x, y, paint);
}
}
줄 끝에서 어떻게 그립니까?
내가 추측하고있어이 같은 이미지를 원하는 : 난 당신이 공간을 추가하면 줄 바꿈이 그 공간 주위의 범위를 넣어 전에 좀 더 운이 있다고 생각 나는 대신 이미지를 사용했다.) 그래서 질문은 당신의 "하드"CR/LF, 즉 당신의 예제에서 "\ n"을 어디에 두어야하는지 (즉, ↲ 대신에 ¶), 또는 "Soft"CR/LF, 즉'TextView'가 멀티 라인 텍스트를 감싸기로 결정한 곳? 왜냐하면 부드러운 CR/LF를 다루는 것은 추가적인 도전의 레이어를 추가하기 때문입니다. –
↲은 \ u21B5, ¶은 \ u00B6입니다. 불행히도 \ u21B5는 Roboto 글꼴이 아니므로 이미지가 필요한 것 같습니다. –
나는 단지 선을 그어나 보이게하고 원래의 줄을 끊지 않고 싶다. 이미지 또는 char이지만 범위 만 있습니다. – Pavel