Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
#1

Ширина TextView в зависимости от наполнения его текстом

26.02.2013, 23:13. Просмотров 2645. Ответов 9
Метки нет (Все метки)

Есть виджет. На нем TextView. В нем строки разделенные символом новой строки. Пока, я чисто по кол-ву символов определяю сколько уместилось и обрезаю строку дополняя троеточием. Но добавил настройки величины шрифта, а теперь как то сложно стало настраивать. Может можно поределять кол-во символов которые могут поместиться в textView? Спасибо. Хотя бы идея...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2013, 23:13
Ответы с готовыми решениями:

В зависимости от позиции Spinner-а менять текст в TextView
Здравствуйте, только познаю андроид, так что сильно не ругайте. Создал спинер,...

Динамический textview и его параметры
Люди помогите пожалуйста :cry:, как мне динамическому listview задать...

Вывести контакт(его имя) на textview
Как вывести имя первого попавшегося контакта (и, возможно, его номера...

Вывод символа Юникода по его коду в TextView
Привет всем. Подскажите пожалуйста по такой штуке: у меня есть в программе...

Изменить текст TextView другого Фрагмента, не открывая его
Могу передать данные из Activiry во фрагмента когда он открыт. blank1 =...

9
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
26.02.2013, 23:20 #2
а зачем вам это определять? вам нужен перенос на другую "страницу" того, что не вместилось?
0
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
26.02.2013, 23:33  [ТС] #3
Цитата Сообщение от V0v1k Посмотреть сообщение
а зачем вам это определять? вам нужен перенос на другую "страницу" того, что не вместилось?
Ну вот смотрите, есть определенного размера область. В ней написана строка длиной 100 символов, а следующая строка пусть 50. Помещается в этой области всего 45 символов. Это все при размере шрифта 12sp. Вот я и обрезал строки по 44 символа и добавлял троеточие. Сейчас решил шрифт сделать настраиваемым по размеру. Допустим он стал 16sp. Теперь в длину уместится не 45, а 35 ... Все это можно в настройках сделать и получить приемлемый результат, но как то уж все тупо...хочется автоматизьма ...
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
26.02.2013, 23:35 #4
android:ellipsize не подходит?
0
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
26.02.2013, 23:39  [ТС] #5
Цитата Сообщение от V0v1k Посмотреть сообщение
android:ellipsize не подходит?
в версиях андроида от 3 и выше перестал работать. Как будто его нет вовсе.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
26.02.2013, 23:40 #6
при рисовании текста на канвасе можно получить его размеры, других способов не знаю.
0
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
26.02.2013, 23:50  [ТС] #7
Цитата Сообщение от V0v1k Посмотреть сообщение
при рисовании текста на канвасе можно получить его размеры, других способов не знаю.
Я тоже так хотел покодовать. На Дельфи делал такую функцию..попробую переложить на яву. Спасибо за участие.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
27.02.2013, 00:37 #8
ах да, вспомнил что для мультилайна какой-то костыль писал, погуглите - https://www.google.com.ua/search?q=e...hrome&ie=UTF-8

Добавлено через 38 минут
вроде по такому семплу делал когда-то давно

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
final TextView title = (TextView)findViewById(R.id.text);
        title.setText("A really long text");
        ViewTreeObserver vto = title.getViewTreeObserver();
        vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
 
            @Override
            public void onGlobalLayout() {
                ViewTreeObserver obs = title.getViewTreeObserver();
                obs.removeGlobalOnLayoutListener(this);
                if(title.getLineCount() > 3){
                    Log.d("","Line["+title.getLineCount()+"]"+title.getText());
                    int lineEndIndex = title.getLayout().getLineEnd(2);
                    String text = title.getText().subSequence(0, lineEndIndex-3)+"...";
                    title.setText(text);
                    Log.d("","NewText:"+text);
                }
 
            }
        });
1
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
28.02.2013, 15:50  [ТС] #9
Никак не пойму, как мне получить доступ к TextView через RemoteViews?
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
28.02.2013, 16:03 #10
вроде нельзя, делайте кастомный TextView и в него запихайте всю нужную логику.
0
28.02.2013, 16:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2013, 16:03

Текст из TextView перенести в другой TextView по нажатию Button
Люди, помогите плиз. Недавно начал ковырять программирование под Android. Хотел...

TextView txt = new TextView(this); - ошибка
Возникла проблема с динамическим создание TextView в цыкле, хотя в другом месте...

ширина блока в зависимости от его содержимого. как?
<div class="head">"Современные технологии"</div> что надо сделать для .head...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru