Anonymous
Не забывайте что нужно учитывать высокосный год. Лучше готовое решение.
Евгений
разница между двумя датами будет всегда одинаковая, независимо от того, какой год 😅
Vadim
Да, тут просто кол-во дней на 30 разделить не выйдет, чтобы посчитать месяцы
Hovhannes
Переводишь в миллисекунды
Hovhannes
Разницу высчитал
Hovhannes
Готово
Anonymous
разница между двумя датами будет всегда одинаковая, независимо от того, какой год 😅
Уверен? К примеру 20 февраля и 20 марта. В высокостный год будет на один день больше.
Евгений
хотя да, длины месяца конкретной нет
Евгений
именно касательно февраля
Vadim
Примеры: 1. Если сегодня 08.01 и разница +95 дней (12 апреля), то я должен получить 3m. 4d. 2. Если разница +65 дней (13 марта) то должно получится 2m. 5d.
Vadim
Нужно учитывать сколько дней в месяце, поэтому просто в милисекунду перевести не получится, если я правильно понял идею
Евгений
календарь дает возможность вытащить из таймстемпа текущий год. Определяем, високосный он или нет по формуле и вуаля
Anonymous
Как вариант удобно использовать библиотеку ThreeTen удобная + у нее и метод есть Duration.beetween
Vadim
Как вариант удобно использовать библиотеку ThreeTen удобная + у нее и метод есть Duration.beetween
я вот что-то у Duration.between не могу найти getMonths, только getDays(), getHours() и по убывающей
Vadim
Есть еще Period.between… смотрю его
Изам
Привет! скажите пожалуйста, как называется подобный слайдер фото. Дело в том что крайние фотки меньше в масштабе
Арслан
Друзья, в Android studio по умолчанию все методы раскрыты, т.е. весь исходный код показан сразу. Нет ли в настройках студии возможности показывать методы по умолчанию свернутыми?
Hovhannes
У тебя всегда слева есть вид структура
Hovhannes
Там где древо файлов
Anonymous
Как добавить посторонний проект в свой?
./settings.gradle include 'app', 'проект'
Арслан
У тебя всегда слева есть вид структура
Да, знаю, всё равно в первую очередь в глаза бросается исходник
Ravshan
./settings.gradle include 'app', 'проект'
Это в каком gradle указать.
Anonymous
В самом первом, корне проекта
Homelander
Господа, у кого-то есть примеры тестовых заданий джуновских? Был бы очень признателен
Ravshan
В самом первом, корне проекта
А папку постороннего проекта просто скопировать?
Anonymous
Без его корня, только app, который переименовываешь чтобы не было коллизии в главном, но без понимания контекста не могу дать точные указания
Anonymous
Далее в app и другом уже свои build.gradle своими зависимостями и этапами, а в корне всего проекта вышеуказанный settings.gradle, local.properties...
Ravshan
Хорошо. Спасибо.
Александр
Господа, у кого-то есть примеры тестовых заданий джуновских? Был бы очень признателен
Ну, смотря какой уровень нужен. Если не особо высокий, так, чисто на джуниорича не имея опыта работы, то вот. https://github.com/KirstenLy/TestTask
neikist
Задание: реализовать приложение-тренажер, обучающее людей правильно определять время на часах со стрелками. Весь процесс происходи в рамках одного экрана (Activity): - Ориентация экрана фиксированная, портретная; - В верхней части экрана циферблат часов с двумя стрелками: часовой и минутной. По кругу шкала делений часов и минут. Также по кругу идут цифры от 1 до 12; - Под циферблатом область для сообщений, изначально в ней написано "Переведи стрелки часов на:"; - Под областью сообщений большая область с текстовым отображением времени, изначально в ней "12:00"; - Под областью отображения времени кнопка сабмита, с текстом "✓" например. Стрелки на циферблате должны быть интерактивными, т.е. обе стрелки независимо можно вращать пальцем вокруг центра циферблата. После нажатия кнопки сабмита приложение анализирует положение стрелок и определяет совпадает ли оно с текстовым отображением внизу. Если совпадает, то в области сообщений выводится сообщение "Верно". Если не совпадает - "Неверно, попробуй еще раз". В случае верного ответа, через 5 секунд в область текстового отображения времени случайным образом выводится новое значение, а текст в области сообщений заменяется на исходный "Переведи стрелки часов на:". И так далее, число итераций неограничено. Дополнительный функционал: меню, звуки, текстуры и пр. - по желанию.
Homelander
спасибо
Никита 🙃
Ребят. Такой странный баг. Есть RV с разными viewtypes. Один из ViewTypes - ViewHolder у которого есть Recyclerview c GridLayoutManager. Всё работает хорошо, но когда приходит с бэка один айтем этого вьютайпа с одним айтемом для списка, то начинается магия и он начинает отрабатывать через раз. То покажет нормально, то метод onBindViewHolder отработает у парента, а чайлд айтем не засетится.
Yerlan
Задание: реализовать приложение-тренажер, обучающее людей правильно определять время на часах со стрелками. Весь процесс происходи в рамках одного экрана (Activity): - Ориентация экрана фиксированная, портретная; - В верхней части экрана циферблат часов с двумя стрелками: часовой и минутной. По кругу шкала делений часов и минут. Также по кругу идут цифры от 1 до 12; - Под циферблатом область для сообщений, изначально в ней написано "Переведи стрелки часов на:"; - Под областью сообщений большая область с текстовым отображением времени, изначально в ней "12:00"; - Под областью отображения времени кнопка сабмита, с текстом "✓" например. Стрелки на циферблате должны быть интерактивными, т.е. обе стрелки независимо можно вращать пальцем вокруг центра циферблата. После нажатия кнопки сабмита приложение анализирует положение стрелок и определяет совпадает ли оно с текстовым отображением внизу. Если совпадает, то в области сообщений выводится сообщение "Верно". Если не совпадает - "Неверно, попробуй еще раз". В случае верного ответа, через 5 секунд в область текстового отображения времени случайным образом выводится новое значение, а текст в области сообщений заменяется на исходный "Переведи стрелки часов на:". И так далее, число итераций неограничено. Дополнительный функционал: меню, звуки, текстуры и пр. - по желанию.
я думаю отрисовка интерактивного циферблата уже на миддла тянет о_О
neikist
я думаю отрисовка интерактивного циферблата уже на миддла тянет о_О
Не, я проверял. Сделал за вечер при том что еще джун. Не полностью задание, а простенький циферблатик.
neikist
canvas'ом?
Ну да. Там довольно просто все если не заморачиваться с кастомизацией через атрибуты и обрабатывать только простые случаи разметки. Я даже на гитхаб выложил, можешь по моему никнейму найти.
Anonymous
Ну да. Там довольно просто все если не заморачиваться с кастомизацией через атрибуты и обрабатывать только простые случаи разметки. Я даже на гитхаб выложил, можешь по моему никнейму найти.
Посмотрел ваш код, почти библиотеку написали за вечер, респект. Но кажись можно проще нарисовать циферблат часов: ConstraintLayout поддерживает размещение элементов по окружности (цифры 1..12), а стрелки простая ImageView с прозрачным фоном, перемещение которых делать простым поворотом. Не?
Anonymous
В итоге все сделать простой разметкой xml
Anonymous
Ясно
neikist
В итоге все сделать простой разметкой xml
Ну способ не суть. Факт в том что вполне для джуна
Anonymous
Можно ли через технологию Flutter/Dart писать приложения, ни чем не уступающие тем, которые написаны посредством Java/Kotlin?
Anonymous
Или это будут относительно простыми приложениями?
neikist
Можно ли через технологию Flutter/Dart писать приложения, ни чем не уступающие тем, которые написаны посредством Java/Kotlin?
Натив все равно нужно будет знать для написания плагинов, не все библиотеками готовыми решается, да и в случае проблем придется разбираться.
Никита 🙃
Можно ли через технологию Flutter/Dart писать приложения, ни чем не уступающие тем, которые написаны посредством Java/Kotlin?
На сегодняшний день - нельзя. Имхо. Видел проекты которые писались на флаттере по пол года, а на выходе - еле работающее, лагающее при простых проскроллах списков говно
Yuri
Народ, если при скролле recycler view тормозит на девайсе но не тормозит в эмуляторе, то проблемка в девайсе или в оптимизации кода? Inflate занимает 150 мс, байндинг вью 60-80. Лейаут сложный
mike
Как сделать чтобы нижняя черта у EditText начиналась после drawable?
Artem
Artem
а так, вроде как никак...
Dmytro
Всем привет! Подскажите какие ещё эмуляторы вы используете, кроме встроенных в Android Studio? Може есть что-то другое?
Anonymous
Говорят, быстрая по сравнению с гугловским
mike
а так, вроде как никак...
Понятно что самому, но не понимаю как
Dmytro
Говорят, быстрая по сравнению с гугловским
Спасибо :) А есть эмуляторы Samsung, Huawei ?
Artem
Понятно что самому, но не понимаю как
Убери черту у editext и сделай вью с бэкграундом и height=1dp
Anonymous
@powerslide028 как вариант создать горизонтальный layout и пихнуть в него картинку и поле
ℕo ℕame
Кто с вебсокетами работал? Когда их лучше закрывать, чтобы не нагружать сервер?
ℕo ℕame
Или это нормально, если он постоянно открыт?
ℕo ℕame
Чат апп
Alexander
Ребят , помощь нужна попробуйте к себе в студию в разметку затянуть material Slider . У вас в preview он будет отображаться или нет . Код - чтоб вам не искать <com.google.android.material.slider.Slider android:layout_width="match_parent" android:layout_height="30dp" android:stepSize="0.5" android:value="4" android:valueFrom="0" android:valueTo="5" />
Jaday
Да
Alexander
Да
Это мне или выше?
neikist
Проект сбилди.
Danile
Проект сбилди.
"попробуйте к себе в студию в разметку затянуть material Slider"
neikist
то не мой вопрос)
А, вкурил. Чет туплю сегодня
neikist
Собсно до билда вьюшка в превью и не будет показываться. Смысл ее просто втаскивать и не билдить?
Никита 🙃
Кто с вебсокетами работал? Когда их лучше закрывать, чтобы не нагружать сервер?
В onPause/onStop можно. Чтоб другие юзеры увидели что ты не в онлайне, напрм
Alexander
Собсно до билда вьюшка в превью и не будет показываться. Смысл ее просто втаскивать и не билдить?
Про билд не писал , по дефолту должен идти . У меня не показывается в превью - поэтому попросил