@android_ru

Страница 622 из 3205
Alexey
04.12.2016
08:28:26
А ему он зачем?) Для ускорения работы?
Чтобы знать куда помещать их, почитай про устройство хэшмап

В какую корзину и т д

Google
Dmitrii
04.12.2016
08:52:22
Столкнулся с проблемой, в общем есть очень сложый экран, там много элементов которые можно так или иначе таскать пальцем. От его положения зависят состояния соседних + еще в фоне анимации, которые реагируют на это. В общем вся проблема в том, что если тач-события происходят очень часто и так происходит, что я пытаюсь запустить одно и тоже дважды то вся анимация в принципе слетает и движения получаются супер-резкие. Отсюда у меня вопрос, правильно ли я понимаю, что в такой ситуации мне надо сделать отдельный тред, который будет "разгребать" очередь тач ивентов с анимациями и предотвращать повторный запуск, если такой тип анимации уже в проессе? Или это решается как то иначе?

Dmitrii
04.12.2016
08:57:13
Тред можно, если работаешь с SurfaceView. Иначе тебе всё равно большинство действий придётся постить в мейн.
Я так понимаю, что SurfaceView все же для видео и других приблуд для рисования. Мне он не очень подходит, у меня классический экран приложения с нативными контролами. Есть ли вариант просто вынести "контроль" управления запуском анимаций в отдельный тред, а запускать их на главном экране как то? Что имелось ввиду под "постить"?

Quantum Harmonizer
04.12.2016
08:58:30
Постить — handler.post(...). Ставить в основной лупер на выполнение.

Мне сложно представить управляющий анимациями код, который положит основной поток. Вероятно, дело в самих анимациях и UI.

Можно попробовать упрощать лейауты, отлавливать overdraw, заглядывать в systrace.

Dmitrii
04.12.2016
09:00:35
Просто если запустить анимацию движения кнопки даже дважды на антач, то будет виден эффект о котором я говорю. Анимация пропадает и кнопка передвигетс туда, куда ей было сказано - немедленно

Quantum Harmonizer
04.12.2016
09:01:20
Почему не проверить. запущена ли анимация?

Deni
04.12.2016
09:01:22
Всем привет, подскажите в чем различие в использовании overridePendingTransition и Window transitions, вроде Window.setEnterTransition()?

Dmitrii
04.12.2016
09:02:57
У меня примерно такая проблема. Я уже отдебажил, и это действительно происходит если на элементе запускать дважды анимацию. В коде анимаций FAB кнопки есть костыли типа запущена ли такая-то анимация. Но я так делать уже не могу, у меня есть разные анимации на разные типы тач событий. И если у меня идет анимация на он-мув и сразу происходит он-ап и я чекну на то, идет ли анимация или нет, то мой шанс запустить анимацию на он-ап будет просран, т.к.больше он-ап событий не будет.

Deni
04.12.2016
09:03:16
хочу сделать slide up activity transition, в сети рекомендуют overridePendingTransition. Смотрю Plaid, там AboutActivity анимируется через window transactions (причем беру его xml-ки, а у меня фон активити размывается и получается выезд с прозрачностью, хотя у него не так, сразу непрозрачная активити выезжает)

Google
Dmitrii
04.12.2016
09:06:39
Но мне нужна предыдущая. На экране будет ад если я сделаю cancel ей.

Я бы так и сделал, если бы мог :)

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

Quantum Harmonizer
04.12.2016
09:09:34
Так тебе нужно запустить следующую анимацию когда текущая закончится?

Dmitrii
04.12.2016
09:10:34
Да. Но сразу говорю что я не могу использовать AnimationSet. Потому что я еще не знаю какое тач-событие может произойти в будущем, поэтому положить нужную анимацию в сет не представляется возможным.

Использовать onAnimationEnd в листнере анимаций не могу по тем же причинам.

Quantum Harmonizer
04.12.2016
09:12:03
Повесь ArrayQueue на View через setTag, а в onAnimationEnd проверяй эту очередь на наличие следующих анимаций.

Dmitrii
04.12.2016
09:17:25
Проблема в том, что у меня параллельно запускаются анимации для трех разных элементов в от-тач событии. Если использовать onAnimationEnd то придется делать по такой "очереди" на каждый элемент, который имеет анимацию. Но по факту, у меня эти 3 анимации это группа анимаций, и следующие анимации можно запускать только тогда, когда все 3 закончат свою работу. А они имеют разные тайминги... :( Короче тлен.

Что-то мне подсказывает, что тема с handler.post и отдельным потоком решит все мои проблемы. Потому что у меня реально там адский экран )

Quantum Harmonizer
04.12.2016
09:24:53
Можно одну очередь на всех завести. Не могу представить, что ты будешь делать в отдельном потоке.

Dmitrii
04.12.2016
09:26:40
Как раз разгребать ее непрерывно и ставить флаги о том, какого типа сейчас анимация в процессе.

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

Quantum Harmonizer
04.12.2016
09:36:06
Ну попробуй. Мне кажется, фоновый поток будет главным образом спать :)

Dmitrii
04.12.2016
09:36:38
Согласен.

balolam
04.12.2016
09:41:03
Если их можно таскать, то может тут нужно не анимации юзать?

Столкнулся с проблемой, в общем есть очень сложый экран, там много элементов которые можно так или иначе таскать пальцем. От его положения зависят состояния соседних + еще в фоне анимации, которые реагируют на это. В общем вся проблема в том, что если тач-события происходят очень часто и так происходит, что я пытаюсь запустить одно и тоже дважды то вся анимация в принципе слетает и движения получаются супер-резкие. Отсюда у меня вопрос, правильно ли я понимаю, что в такой ситуации мне надо сделать отдельный тред, который будет "разгребать" очередь тач ивентов с анимациями и предотвращать повторный запуск, если такой тип анимации уже в проессе? Или это решается как то иначе?

Анимации придуманы же не для таких вещей, в таких случаях тебе свой ViewGroup писать нужно и использовать андроидовские хелперы для плавного перетаскивания и инертной агимации движения объектов

Dmitrii
04.12.2016
09:42:49
Таскать можно некоторые элементы, они и генерят тач события

А другие элементы должны анимироваться от этого. Начиная от типа тач события заканчивая тем как далеко палец в тач событии от него

balolam
04.12.2016
09:43:43
Т.е. возможно ты не исправишь ничего, ведь подход в принципе неверен

Google
Dmitrii
04.12.2016
09:49:33
Ну Дак все это реализуемо через собственный ViewGroup
А как он решает проблему когда у мне надо запускать анимации на элементах, которые длиннее по времени, чем интервал между срабатыванием тач событий, и как я выше писал, когда тип тач события меняется, а те анимации еще в процессе, то надо ждать пока все они выполнятся?

balolam
04.12.2016
09:51:32
А как он решает проблему когда у мне надо запускать анимации на элементах, которые длиннее по времени, чем интервал между срабатыванием тач событий, и как я выше писал, когда тип тач события меняется, а те анимации еще в процессе, то надо ждать пока все они выполнятся?
Есть уйма классов хелперов, которые позволяют даже после окончания ивентов прожолжать двигать объект плавно до остановки. Анимации придуманы не для таких случаев, посмотри доки, погугли. Просто я бы делал не так и если у тебя не выйдет реализовать своё решение то присмотрись к моему)

Ты же когда NumberPicker скроллишь - он останавливается плавно. Или ListView, не моментально же дергается

Vitaly
04.12.2016
09:54:47
Ребята, можно ли как то во viewpager сменить фрагмент, находящийся в одном табе?

Погуглил, везде что то сложно как то

Toshk
04.12.2016
09:59:25
Добрый день, не специалист, мимо пробегал, но есть план в скором времени пилить андроид читалку картинок с сайтов/с памяти. Надеюсь, что в будущем тут смогут помочь на возникшие при работе вопросы.

Quantum Harmonizer
04.12.2016
10:00:18
Ребята, можно ли как то во viewpager сменить фрагмент, находящийся в одном табе?
Поменять фрагмент, стоящий в этой позиции, на другой? Попросить адаптер поменять элемент, инвалидировать адаптер. Возможно, вернуть NO_POSITION из getItemPosition или что-то в этом роде.

Vitaly
04.12.2016
10:00:41
Да, нужно поменять его

Ок, поищю, спс

Quantum Harmonizer
04.12.2016
10:56:44
Кто-нибудь пробовал парсить markdown в Android? Нужно получить на выходе примерно то, что выдаёт PegDown, но он работает с ASM и на андроиде падает.

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

Ⓜ️ᵃʳᵃᵗ
04.12.2016
11:13:52
какое хранилище взять, если нужно просто 10 параметров сохранить. но нужна сортировка и активный параметр не активный. я бы бросил в преф. но апи от 9. хотя, может просто json в преф. втыкать.

хотя ладно в префы воткну, просто в массиве ключи так де генерить буду

Alexey
04.12.2016
11:29:15
@Harmonizr видел в plaid парсилку markdown - свой форк bypass

Quantum Harmonizer
04.12.2016
11:31:50
Но код же никто просто так не даст?)

Alexey
04.12.2016
11:32:33
@Harmonizr plaid. https://github.com/nickbutcher/plaid

Quantum Harmonizer
04.12.2016
11:32:56
О, класс. Спасибо.

Edgar Khimich
04.12.2016
11:34:31
всем привет скажите, а как правильно вставлять код в стековерфлоу ? чтоб так было к примеру int a = 1; int b = 1

Google
Alexey
04.12.2016
11:42:53
@Khimich_Edgar там справа в форме редактирования кнопка "?" есть. 4 пробела перед каждой строкой кода

Edgar Khimich
04.12.2016
11:42:54
Так же как и здесь.
последняя кавычка не влезла

Lily
04.12.2016
13:15:39
Всем здравствуйте, а здесь помогают по вопросам и обсуждают андроид? Если нет, подскажите пожалуйста такие чаты. Очень нужно.

I
04.12.2016
13:18:06
кстати, чатец по java подкиньте? у меня есть вопрос к ним)

Lily
04.12.2016
13:18:07
Хм, спасибо я читала, но в основном здесь про разработку андроида.

Владислав
04.12.2016
13:18:10
Leonid
04.12.2016
13:40:16
Напоминает бессмертное — Здравствуйте, это канал об аниме? — Да. — Как мне пропатчить KDE2 под FreeBSD?

Artyom
04.12.2016
14:20:30
Чуваки! Кто шарит в тестах? Вот самый банальный вариант. У меня есть конструктор у класса, который внутри обрабатывает exception. Как мне протестировать конструктор? Допусти public DBHelper(String dbHost, String dbUser, String dbPassword, Logger logger) { this.logger = logger; this.dbHost = dbHost; this.dbUser = dbUser; this.dbPassword = dbPassword; try { Class.forName(JDBC_DRIVER); } catch (Exception e) { logger.error(e.getMessage()); } } Пока у меня одна мысль. Выдвинуть все содержимое конструктора в метод Init() throws SqlException и протестировать его на наличие валится exception или нет. Но создавать отдельный метод для этого, как то фу.. или все норм?

J
04.12.2016
14:26:38
А ему он зачем?) Для ускорения работы?
HashMap работает хуже Array с плохим hashCode

Vitaliy
04.12.2016
14:59:10
А ему он зачем?) Для ускорения работы?
Срочно почитай о том, как оно работает, это и правда знать надо. Плюс базовые правила оверрайда вроде ассоциативсти и так далее

Была книжка по Java с таким

Anton
04.12.2016
15:00:02
да это во всех книжках вроде описано

по джаве

Google
Vitaliy
04.12.2016
15:00:06
Там еще очень хорошо про extends и super писали для wildcard

Во всех, но тут особая была. В ней писалось именно о том, как правильно готовить все в Java.

Максим
04.12.2016
15:01:56
Философия Java,

?

J
04.12.2016
15:02:14
Философия Java,
в википедии посмотри чо такое HashTable просто

Anton
04.12.2016
15:02:15
Thinking in Java

Vitaliy
04.12.2016
15:02:32
Вроде да. Или она, или другая была, с похожим названием

Anton
04.12.2016
15:02:47
ну вот эта оч хорошая

Vitaliy
04.12.2016
15:02:53
Если там есть про in/out wildcard -- она

Anton
04.12.2016
15:02:57
там про вайлкарды много например раз уж вспомнили

про дженерики страниц 30

Vitaliy
04.12.2016
15:03:23
О том, какие слова применять для входящих и исходящих параметризаций

Да, но там обычная вода была

Поэтому не уверен

Посмотрите сами

Страница 622 из 3205