0
실제로 Spannable 문자열의 텍스트 사이의 줄 간격을 늘리려고합니다. 그런 다음 줄 바꿈 문자의 스팬 크기를 늘려서이 작업을 수행하려고합니다. 그러나 2 번째 줄은 영향을받지 않는 것으로 보인다.안드로이드 : Spannable String의 줄 바꿈 높이가 변경되지 않습니다.
처음에는 코드가 작동하는지 보여주기 위해 구분 기호로 'a'를 사용합니다.
이가 그럼 난 "\ n을"은, 그것이 제대로 보이지 않습니다하는 구분 기호를 변경 :
임에 그것을 실행
private fun getCenterSpannableText() : SpannableString {
val currency = "Currency"
val total = "Total"
val subtitle = "Subtitle"
val delimiter = "\n"
val finalStr = "$currency$delimiter$total$delimiter$subtitle"
val currencyIndex = finalStr.indexOf(currency)
val totalIndex = finalStr.indexOf(total)
val subtitleIndex = finalStr.indexOf(subtitle)
val s = SpannableString(finalStr)
s.setSpan(RelativeSizeSpan(1.4f), currencyIndex, currency.length, 0)
s.setSpan(ForegroundColorSpan(ContextUtil.instance.getColor(R.color.colorGrey5)), currencyIndex, currency.length, 0)
s.setSpan(RelativeSizeSpan(1.8f), totalIndex, totalIndex + total.length, 0)
s.setSpan(ForegroundColorSpan(ContextUtil.instance.getColor(R.color.colorGrey5)), totalIndex, totalIndex + total.length, 0)
s.setSpan(RelativeSizeSpan(1f), subtitleIndex, subtitleIndex + subtitle.length, 0)
s.setSpan(ForegroundColorSpan(ContextUtil.instance.getColor(R.color.colorGrey2)), subtitleIndex, subtitleIndex + subtitle.length, 0)
//make the \n have bigger fonts
s.setSpan(RelativeSizeSpan(2.5f), currencyIndex + currency.length, currencyIndex + currency.length + delimiter.length, 0)
s.setSpan(RelativeSizeSpan(2.5f), totalIndex + total.length , totalIndex + total.length + delimiter.length, 0)
return s
}
출력이 있습니다 API24 에뮬레이터
이유에 코드를 변경하려고 할 수 있습니다 의미 너는 내가 그걸하고 싶다고 생각할거야? 3 개의 값을 모두 별도의 줄에 넣기를 원합니다. – iori24
총계와 자막 사이에 더 큰 줄 간격을 원하십니까? 제가 제안한 것을 시도해 보았습니까? 실패했거나 다시 한 번 설명하는 것보다 코드의 한 줄을 붙여 넣는 것이 더 효과적입니까? 편집 : 내 나쁜, 대답을 편집하려고합니다. 이제는 별도의 줄에 있어야합니다. – Bjelis
마지막에 개행을 추가하면 더 나은 결과가 나타납니다. 그런 다음 마지막 줄에 다른 s.setSpan (RelativeSizeSpan() ...)을 추가하고 최상의 결과를 얻을 수있는 값을 반올림해야합니다. 그러나 나는 왜 그것이 마지막에 하나를 지속 할 필요가 있는지 알지 못한다. 감사합니다 btw – iori24