PDA

Просмотр полной версии : Реализация Drag & Zoom в рисовалке


Zebestov
12.09.2015, 16:52
А ну давайте-ка разомнемся!
Есть рисовалка. Есть инструменты кисть, резинка и им подобные. Нужно реализовать drag и zoom холста прямо во время рисования.

Самое лучшее, что можно придумать — это слизать с фотошопа (зажимаем пробел при любом инструменте и таскаем холст). НО! Если сделать кнопку, зажимая которую мы временно переходим в режим таскания холста, то все норм. Но зум холста — это уже три тача: кнопка и два пальца для зума. Вот я и задумался, а все ли девайсы, включая дешевый китай и прочий ширпотреб понимают много тачей?

Разумеется, есть еще вариант с дабл-тапом, который чередует zoom-in (с центровкой по точке тапа) и zoom-out (show all). Но этого недостаточно, иногда zoom нужен разный. Да и таскать по-прежнему чем-то надо.

Какие еще могут быть простые (это ключевое требование) варианты, не отвлекающие от инструмента?

samana
12.09.2015, 17:02
Но зум холста — это уже три тача: кнопка и два пальца для зума.
Я не в курсе этих новых технологий, но возможно ли сделать drag именно этими же двумя тачами, которыми изменяем зум? Например если два пальца передвигаем равномерно в одну сторону, то срабатывает drag, а зум изменяется конечно только при изменении расстояния между пальцами.

Zebestov
12.09.2015, 17:47
Проблема не в этом. Проблема в том, чтобы все работало только при зажатой кнопке, которая блокирует инструмент кисть, например, которым мы прямо сейчас рисуем.

caseyryan
12.09.2015, 19:54
а все ли девайсы, включая дешевый китай и прочий ширпотреб понимают много тачей?
Если экран не резистивный, то любые, даже самые задрипаные китайские чудеса технической мысли понимают минимум 3 тача. Тебе этого как раз хватит.

А на счет решения, я как тему начал читать, сразу понял как сделал бы я. Просто во время касания запоминал бы время getTimer()'ом, и если палец неподвижно стоит в одном месте, допустим в течение 1 - 1.5 секунд, то кисть деактивируется и активируется дрэг. Либо, сделай перетаскивание двумя пальцами. Тоже такое видел в некоторых прогах, например в мобильном TeamViewer'е. Кстати советую посмотреть как в нем сделано. Там достаточно много разных жестов

Zebestov
12.09.2015, 21:47
Насчет "залипания думал", просто я его сам не очень люблю.
А вот жест двумя пальцами можно было бы! Но, опять же, получится не универсально — мне таскание холста нужно и в инструменте "трансформация" ))

Вот же задачка!

Добавлено через 17 минут
Или такой вариант: режим "drag & zoom" включается по залипанию а выключается по одному короткому тапу. Тогда это получается вполне себе универсально.

dark256
16.09.2015, 21:35
Я тут случайно на вот такое набрёл:
http://discount.ulmart.ru/goods/3551480#tab-properties

________5-пальцевый мультитач________

Бэстыч, ты не под те девайсы тулзу свою пишешь :))))))))
Ты ж прикинь, как тут размахнуться-то можно :)