Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Анд_Рей
2 / 2 / 0
Регистрация: 27.12.2009
Сообщений: 145
#1

Текст в одну строку - Android

15.12.2015, 11:18. Просмотров 545. Ответов 13
Метки нет (Все метки)

здравствуйте.
есть ооооочень длинный текст и нужно, что-бы об шел в одну строку безконечно долго, пока не закончится, и крутился в нужном направлении.

вот xml
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<RelativeLayout
                android:id="@+id/news_holder"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_gravity="top"
                android:layout_weight="1"
                android:background="@color/black"
                android:gravity="center"
                android:padding="0dp"
                android:scrollbars="none">
 
                <TextView
                    android:id="@+id/mywidget"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:ellipsize="marquee"
                    android:fadingEdge="horizontal"
                    android:marqueeRepeatLimit="marquee_forever"
                    android:maxLines="1"
                    android:scrollHorizontally="true"
                    android:singleLine="true"
                    android:textColor="@color/white" />
 
            </RelativeLayout>
вот функция, которая добовляет и крутит текст
Java
1
2
3
4
5
6
7
8
9
10
    public void setMarqueeString(String marqueeString) {
        Animation animationToRight = new TranslateAnimation(-400, 400, 0, 0);
        animationToRight.setDuration(12000);
        animationToRight.setRepeatMode(Animation.RESTART);
        animationToRight.setRepeatCount(Animation.INFINITE);
 
        TextView news = (TextView) findViewById(R.id.mywidget);
        news.setText(marqueeString);
        news.setAnimation(animationToRight);
    }
Проблема в том, что текст этот не полость показывается, а добовляются три точки в конце....как от них избавится, как следать так, что-бы текст был полность?
спасибо всем.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2015, 11:18     Текст в одну строку
Посмотрите здесь:

android:inputType как вводить цифры или одну букву? Android
Android TextView. Можно ли добиться, чтобы текст переносился на следующую строку?
Непрозрачный текст Android
Получать текст входящих sms-сообщений от определённого номера и использовать этот текст в своей программе Android
Android При размещении объектов в одну линию уползает разметка
Android Текст в виджете
Могу ли я поделить одну активность на две независимых части? Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
резкий
1960 / 1695 / 525
Регистрация: 12.05.2014
Сообщений: 6,046
Завершенные тесты: 1
15.12.2015, 12:03     Текст в одну строку #2
ну у меня вот такой xml нормально прокручивает текст, без всяких анимаций в коде, они не нужны
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
<TextView
            android:id="@+id/mywidget"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ellipsize="marquee"
            android:focusable="true"
            android:focusableInTouchMode="true"
            android:fadingEdge="horizontal"
            android:marqueeRepeatLimit="marquee_forever"
            android:text="111111111 22222222222 33333333333333333 44444444444444 555555555555555 666666666666666 77777777777777777777 888888888888888 99999999999999999 0000000000000"
            android:maxLines="1"
            android:scrollHorizontally="true"
            android:singleLine="true"/>
трех точек нет
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
15.12.2015, 17:37     Текст в одну строку #3
железно работающий способ: вырезать из строки кусок, и показывать его в цикле. и так сдвигая на один символ.
для этого надо взять ширину экрана, узнать ширину строки при данном фонте, ну и дальше понятно.

а чо реально кто-то пялится в экран, пытаюсь прочитать бегущую строку?!. :-)
Spelcrawler
522 / 492 / 110
Регистрация: 12.03.2014
Сообщений: 1,643
Завершенные тесты: 1
15.12.2015, 17:43     Текст в одну строку #4
Цитата Сообщение от bastrakov Посмотреть сообщение
железно работающий способ: вырезать из строки кусок, и показывать его в цикле. и так сдвигая на один символ.
Скорее железно тормозящий. Во первых операции со строками (довольно долгие), во вторых замена текста в textView (еще дольше). Если уж делать самому с нуля лучше будет отрендерить 1 раз всю строку и показывать ее часть, сдвигая видимую область. Делал подобное с графиком, чтобы не мучаться с расчетом линий, одна из точек которого за пределами видимости, просто рендерил все точки, а потом уже показывал только то что нужно. Ну и вероятно есть решение еще лучше.
Паблито
резкий
1960 / 1695 / 525
Регистрация: 12.05.2014
Сообщений: 6,046
Завершенные тесты: 1
15.12.2015, 17:46     Текст в одну строку #5
а то что я выше предложил не годится?
Spelcrawler
522 / 492 / 110
Регистрация: 12.03.2014
Сообщений: 1,643
Завершенные тесты: 1
15.12.2015, 17:47     Текст в одну строку #6
Паблито, не проверял, а текст там сам скроллиться? Хотя даже если нет, программно проскроллить будет легче всего)
Паблито
резкий
1960 / 1695 / 525
Регистрация: 12.05.2014
Сообщений: 6,046
Завершенные тесты: 1
15.12.2015, 18:07     Текст в одну строку #7
что, мое решение настолько простое что никто не поверил что такое возможно и не проверил?
там же кусок xml и все, даже ничего писать в активити не нужно что бы проверить
Spelcrawler
15.12.2015, 18:11
  #8

Не по теме:

Паблито, ну мне оно не нужно, да и студии под рукой нет. А вообще свой пост выше написал как раз чтобы не городили велосипеды.

Паблито
15.12.2015, 18:15
  #9

Не по теме:

я на таких вопросах за последние пол года ппц заимпрувил скилл
меня эта бегущая строка давно беспокоила, и вот наконец вопрос на форуме и повод разобраться

Анд_Рей
2 / 2 / 0
Регистрация: 27.12.2009
Сообщений: 145
15.12.2015, 18:56  [ТС]     Текст в одну строку #10
Паблито, что-бы ваш код заработал нужно добавить в код следующую строку
Java
1
myText.setSelected(true);
Но при этом приложение начинает притормаживать. Возможно ли это как-то исправить?
Паблито
резкий
1960 / 1695 / 525
Регистрация: 12.05.2014
Сообщений: 6,046
Завершенные тесты: 1
15.12.2015, 18:58     Текст в одну строку #11
у меня ничего не тормозит и работает без этой строки
ее, кстати не обязательно в коде писать, можно и в xml-е добавить если без нее никуда
Анд_Рей
2 / 2 / 0
Регистрация: 27.12.2009
Сообщений: 145
15.12.2015, 19:18  [ТС]     Текст в одну строку #12
Паблито, может разница в том, что я добовляю строку динамически т.е. вот так
Java
1
2
TextView textView = (TextView) findViewById(R.id.mywidget);
            textView.setText(marqueeString);
?
Паблито
резкий
1960 / 1695 / 525
Регистрация: 12.05.2014
Сообщений: 6,046
Завершенные тесты: 1
15.12.2015, 19:19     Текст в одну строку #13
а анимация или еще что-то назначается?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2015, 19:20     Текст в одну строку
Еще ссылки по теме:

Android Вписать текст в одну строку
Android Заголовки TabView в одну строку

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

Или воспользуйтесь поиском по форуму:
Анд_Рей
2 / 2 / 0
Регистрация: 27.12.2009
Сообщений: 145
15.12.2015, 19:20  [ТС]     Текст в одну строку #14
Паблито, нет. Все поотменял
Yandex
Объявления
15.12.2015, 19:20     Текст в одну строку
Ответ Создать тему
Опции темы

Текущее время: 22:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru