Обрезка строк в ListView

Рейтинг: 0Ответов: 1Опубликовано: 09.02.2015

Доброго времени суток!

У меня такой вопрос. Допустим, у меня есть ListView, в каждом элементе которого есть TextView с каким-то текстом. Текст может быть разной длины, в том числе может и не умещаться на экране. Я написал функцию, которая обрезает строку и дополняет ее тремя точками, если она больше 30 символов:

public static String reduce(String text) {
    return text.length() <= 30 ? text : text.substring(0, 27) + "...";
}

И это вроде работает. Но проблема в том, что приложение может запускаться на устройствах с разными размерами экранов и к тому же может использоваться разный размер шрифта, поэтому в каждом таком случае должно быть свое количество символов вместо тридцати. Например, если размер экрана 1024х768, то строка должна быть не больше 30 символов, если 1920х108, то 50 символов и так далее.

Как поступить в таком случае? Как правильно обрезать строку в зависимости от размера экрана и размера шрифта, чтобы она всегда помещалась на экране и при этом имела максимальный возможный размер?

Ответы