PDA

Просмотр полной версии : Как лучше делать кнопки-картинки для мобильных приложений?


Astraport
22.09.2012, 14:41
В принципе вопрос простейший, но очень важный для юзабилити. В кнопке для мобил всего два основных состояния - обычное и нажатое. Притом второе обычно показывается всего на доли секунды и возвращается к первому. Делать две разных картинки под каждое состояние не рационально. Твинить какую-нибудь анимацию (например скейлить на уменьшение) - расточительно и тормозно, т. к. основное событие, ради которого нажимается кнопка, должно ждать пока отыграет анимация, т. к. параллельное их исполнение все же тормозит. Изменение например альфы не возможно в приложениях оптимизированных под gpu рендеринг.

Вот как посоветуете отображать реакцию тапа юзера на простой кнопке-картинке?

caseyryan
22.09.2012, 15:43
Подсветить рамку вокруг кнопки на полсекунды (ну или вроде того)?

п.с. А зачем что-то изобретать для этого? Ведь юзер может не быстро клацнуть по кнопке, а плавно нажать ее. При этом состояние нажатия будет видно

Astraport
22.09.2012, 15:59
Подсветить рамку вокруг кнопки на полсекунды (ну или вроде того)?
Да, это тоже рассматривал. Также как и наложение под картинку полупрозрачного квадрата.
Ведь юзер может не быстро клацнуть по кнопке, а плавно нажать ее. При этом состояние нажатия будет видно
Не понял. Как можно плавно нажать?

caseyryan
22.09.2012, 16:20
Ну, тоесть нажать кнопку не резким щелчком по экрану, а нажать, сколько-то подержать, и отпустить

На андроиде, например, она при этом подсветится оранжевым цветом

Котяра
22.09.2012, 16:56
MOUSE_DOWN -> MOUSE_UP (этот переход и подсвечивайте)

Astraport
22.09.2012, 18:29
Вот нашел (http://thanksmister.com/2012/01/17/flex-spark-rounded-image-and-image-button-controls/) правильную и красивую реализацию. Правда скин сделан для Flex, но легко переделать. Проверил на реальных устройствах - работает идеально. Так же можно легко менять в скине вид интерактивности - подсветку границ или смену фона.

Котяра
22.09.2012, 23:07
http://feathersui.com/
http://madskool.wordpress.com/