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

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

Войти
Регистрация
Восстановить пароль
 
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
#1

Анимировать текст горизонтальной прокруткой - Программирование Android

08.01.2016, 21:05. Просмотров 280. Ответов 12
Метки нет (Все метки)

Гуру, посоветуйте технологию!
(не охота с нуля писать)

Есть номер телефона в поле TextView.

Но он не всегда вмещается в ячейку.
...от ширины экрана, и от длины номера (+38... +800...)

нашел 2 метода "горизонтальной прокрутки" (классом ="надежнее" и параметрами="плавнее"), но... они ПОЛНОСТЬЮ прокручивают номер!
А мне бы "шатание" сделать - вправо до упора, подождать и влево до упора...
А получаю - номер уползает почти полностью, несколько пробелов и начинается сначала...

С анимацией раньше не работал... А тут "шрифты не подгонишь"...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2016, 21:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Анимировать текст горизонтальной прокруткой (Программирование Android):

Через какой метод можно анимировать аппаратную кнопку? - Программирование Android
Хочу, чтобы при свайпе вверх был осуществлен переход на другое активити и параллельно выводилась аппаратная клавиатура снизу вверх (не...

TextView и ListView с единой прокруткой ScrollView(?) - Программирование Android
Всем привет, столкнулся с проблемой при одновременном отображении ListView и TextView . Не получается отобразить эти 2 блока как единый...

Таблица с горизонтальной прокруткой и отступами - HTML, CSS
Доброго времени суток, комрады. Есть страничка с формой и таблицей с результатами под ней. Проблема в том, что иногда данные в таблице...

Текст с прокруткой - Delphi
Всем ПРИВЕТ! есть проблемка: мне нужно в combobox1 выбрать допустим Англия, а рядом на этой же форме появился текст об Англии, но если...

Текст с прокруткой на прозрачном фоне.... - Delphi
Можно ли сделать компонент Memo прозрачным??...Или привязать к Label ScrollBar???..... В общем, мне нужно, чтобы был большой текст...без...

В эксплорере и в опере в <textarea> нет горизонтальной прокрутки и текст автоматом переносится на следующую строку. - JavaScript
В эксплорере и в опере в &lt;textarea&gt; нет горизонтальной прокрутки и текст автоматом переносится на следующую строку. Для примера -...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Pablito
2472 / 1917 / 595
Регистрация: 12.05.2014
Сообщений: 6,741
Завершенные тесты: 1
09.01.2016, 17:32 #2
надо именно туда-сюда анимацию, стандартная - по кругу не устраивает, надо больше гимора?
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
09.01.2016, 22:16  [ТС] #3
Цитата Сообщение от Паблито Посмотреть сообщение
надо именно туда-сюда анимацию
угу! поэтому и спрашиваю! по кругу нашел! даже 2 варианта (могу скинуть оба - может кому надо)!

Ситуация: номер телефона на ОДИН символ/цифру (ну 2-3 максимум из 14-15, а иногда и на 0.5-0.3)не вмещается! И получаю... Почти полное "уплывание" номера за экран и появление сначала... Мне продиктовать его надо "по быстрому", а сижу и жду...

Хочу чтобы на этот символ-два влево ушел, а потом вправо "вернулся"
Pablito
2472 / 1917 / 595
Регистрация: 12.05.2014
Сообщений: 6,741
Завершенные тесты: 1
11.01.2016, 11:26 #4
лично моение мнение, проблема высосана из пальца
сделать шрифт меньше, переделать немного разметку

люди огромные формы умудряются нормализовать и выводить на 4" телефоне, а тут одно поле с телефоном и уже надо искать либу или писать кучу кода
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
11.01.2016, 12:09 #5
Согласен с Паблито, почему бы просто не уменьшить шрифт? Но если уж совсем никак можно на канвасе нарисовать какую угодно анимацию и с текстом в том числе.
Pablito
2472 / 1917 / 595
Регистрация: 12.05.2014
Сообщений: 6,741
Завершенные тесты: 1
11.01.2016, 14:29 #6
я тут пока пытался для интереса сделать прокрутку текста, случайно сделал AutoSizeTextView
вдруг кому-то пригодится

по-быстрому потестил - работает, но не исключены приколы
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import android.content.Context;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.widget.TextView;
 
public class AutoSizeTextView extends TextView {
 
    private boolean measured = false;
 
    public AutoSizeTextView(Context context) {
        super(context);
    }
 
    public AutoSizeTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
 
    @Override
    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
        super.onLayout(changed, left, top, right, bottom);
        if (!measured) {
            measure(0, 0);
            float ratio = (float) getWidth() / getMeasuredWidth();
            setTextSize(TypedValue.COMPLEX_UNIT_PX, getTextSize() * ratio);
        }
        measured = !measured;
    }
}

Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
        <com.example.myapplication.AutoSizeTextView
            android:id="@+id/textView"
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:singleLine="true"
            android:text="LOOOOOOL atatat trololo" />

Если обнаружится стренное поведение - пишите, может получится код доработать.
Я не стал городить проверки на нули и прочие очевидные вещи что бы можно было понять логику кода.
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
11.01.2016, 14:37  [ТС] #7
Цитата Сообщение от Spelcrawler Посмотреть сообщение
почему бы просто не уменьшить шрифт?
потому что заранее не знаю каких размеров будет телефон и поле вывода! От слишком многого зависит... Диагональ телефона, наличие картинок которые не всегда всплывают, поворот... а так... "примерно вмещается" - и ладно - иначе прокрутка запустится...
Пока тестировал выводил туда и вспомогательную инфу - тогда понял что может понадобиться и прокрутка... Особенно если телефоны "внутренние" или "городской" межгород (как раньше в АТС было 8w9w1w800w000000)

На моем телефоне - ВМЕЩАЕТСЯ стандартный номер. Но для тестов добавлял лишние нолики... на пол цифры уплыло (и так читабельно), но уплывает целиком и вижу лишь пол номера...

Шрифт "подгонять" не решение - можно вообще читабельность потерять! Особенно на ОЧЕНЬ маленьких экранах (например на наручных часах)

Цитата Сообщение от Spelcrawler Посмотреть сообщение
можно на канвасе нарисовать какую угодно анимацию и с текстом в том числе
Можно... но это займет пол дня!! (в лучшем случае). Анимация полезная... думаю многим нужна... надеялся что где-нибудь кто-нибудь уже написал/увидел в опенсорсах...
Pablito
2472 / 1917 / 595
Регистрация: 12.05.2014
Сообщений: 6,741
Завершенные тесты: 1
11.01.2016, 14:40 #8
Цитата Сообщение от Tester64 Посмотреть сообщение
Особенно на ОЧЕНЬ маленьких экранах (например на наручных часах)
нормальные люди делают отдельные разметки для разных размеров экрана
на разных экранах могут быть вообще разные наборы элементов, размеров, цветов и т.д.
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
11.01.2016, 15:30  [ТС] #9
Цитата Сообщение от Паблито Посмотреть сообщение
нормальные люди делают отдельные разметки для разных размеров экрана
У меня рядом с телефоном будет всплывать мини-фото. Или не всплывать... Опять-же есть не стандартные мониторы (пробовали создать в эмуляторе Генимоушн ВРУЧНУЮ задав разрешение в пикселах?). Предусмотреть ВСЕ невозможно! Номер - важная инфа! В идеале вмещается, но если что... мешать чтению это не должно! Для этого и пишут подобные компоненты... вполне можно на пару пикселов промахнуться и потеряю несколько тысяч потенциальных китайских покупателей!

С графикой давно не работал - нарисовать "вмещающееся" будет не легко (для меня). (вычислить размер видимого, сдвигать по пикселам в потоке)

Нашел на стеке прикольный компоент с посимволным выводом (как при печати/наборе)... может адаптирую для начала...

Немного подумал... в идеале это должен быть компонент, который позволяет пальцем двигать текст (как при редактировании строки). А при лонг-клике (или клике) выдавать "хинт" с крупным текстом над ним... ползти должно редко, раз в несколько секунд, причем возможно только в одну сторону, потом "щелчком" возвращаться в исходную позицию...

Короче - несколько дней работы! Пока откладываю! Может в одном из следующих "релизов" сделаю... А пока - лишь бы вообще прога заработала!
Pablito
2472 / 1917 / 595
Регистрация: 12.05.2014
Сообщений: 6,741
Завершенные тесты: 1
11.01.2016, 15:37 #10
Цитата Сообщение от Tester64 Посмотреть сообщение
Опять-же есть не стандартные мониторы (пробовали создать в эмуляторе Генимоушн ВРУЧНУЮ задав разрешение в пикселах?).
какое отношение имеет плотность экрана если размер задается в DP ?
вопрос риторический - никакого

на экране часов места завались, там можно не только номер показать, а и длину конечностей и рост и вес
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
11.01.2016, 15:57  [ТС] #11
Цитата Сообщение от Паблито Посмотреть сообщение
какое отношение имеет плотность экрана если размер задается в DP ?
Сам не пробовал... Но... в настройках генимоун 3(!!!) параметра - размер высоты, ширины и плотность... Причем высоту и ширину можно выставлять до пиксела!

Цитата Сообщение от Паблито Посмотреть сообщение
на экране часов места завались
Не видел еще... Просто "теоретически" моя программа и там может пригодиться...
А у меня кроме номера еще КУЧА параметров! И в НЕБОЛЬШОМ участке (рядом с несколькими фото в ширину и двумя рамками) хранится телефон... И вдруг на одном из маленьких/старых/китайских экранах от номера телефона отрежут половину... Проще один раз компонент написать - может еще в десятке мест быть использован!

p.s. Вы уверены что ВСЕ номера хранятся в евро-формате? Во всех странах? Во всех АТС? А номера для USSD-запросов (в МТС есть запрос "позвони мне" - включает команду, код языка, телефон "кому" и разделители) - как под них подгонять? У меня есть парочку таких для друзей. И я маме такой номер "на себя" добавил в контакты...
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
11.01.2016, 16:55 #12
Цитата Сообщение от Tester64 Посмотреть сообщение
размер высоты, ширины и плотность...
Ну размер текста же в sp - на него влияет только физический размер экрана и настройка размера шрифта, т.е. разрешение вообще пофиг какое, главное размер. А сделать эту прокрутку хоть руками, хоть автоматом не долго совсем. Берем ширину вьюшки, расчитываем ширину, которую займет текст (через Paint) ну и если ширина текста больше чем ширина вьюшки двигаем левую точку текста в минус до значения на которое текст шире вьюшки.
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
11.01.2016, 17:08  [ТС] #13
Цитата Сообщение от Spelcrawler Посмотреть сообщение
А сделать эту прокрутку хоть руками, хоть автоматом не долго совсем. Берем ширину вьюшки, расчитываем ширину, которую займет текст (через Paint) ну и если ширина текста больше чем ширина вьюшки двигаем левую точку текста в минус до значения на которое текст шире вьюшки.
Теоретически... понимаю... Но на это пол дня с отладкой точно уйдет! А это лишь одно поле...

Так что пока... "в долгий ящик"... может через пару месяцев вспомню...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2016, 17:08
Привет! Вот еще темы с ответами:

Анимировать Notepad++ - C++
Сложно ли будет новичку превратить унылый Notepad++ в brackets? http://4.firepic.org/4/images/2014-08/20/3gjw432khrsa.gif ...

Анимировать фигуру - Delphi
надо нарисовать фигуру и анимировать ее. Подскажите, пожалуйста, как в делфи нарисовать

Как анимировать? - Maple
Здрасте! Вот о5 обращаюсь но уже с другой задачкой. Теперь Maple. Не могу анимировать график G. Надо чтобы плавно шел. Надо чтобы менялся...

Анимировать снеговика - Turbo Pascal
Program ZaD_Snegovik; Uses graph; Var Device,mode:Integer; Begin Device:=0; InitGraph(Device,Mode,'c:\Turbo'); ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
11.01.2016, 17:08
Ответ Создать тему
Опции темы

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