В большинстве реализаций для ввода текста используются системные диалоги (т.е. при попытке ввода текста всплывает нативный диалог, поддерживающий разные методы ввода (TAP, T9 etc), и ввод текста осуществляется в нем. При закрытии диалога текст передается в жаву). В ряде случаев (игры, например) это сильно неудобно. Как бы реализовать TextField самому, что бы поддерживался и требуетый look'n'feel, и методы ввода, доступные на девайсе? Самостоятельно реализовать TAP можно, но сразу возникают вопросы единообразия с нативной реализацией, да и поддержка японских-китайских и т.п. языков под вопросом... Может кто-нибудь занимался подобными вещами? Поделитесь идеями pls?
Здравствуйте, Аноним, Вы писали:
А>В большинстве реализаций для ввода текста используются системные диалоги (т.е. при попытке ввода текста всплывает нативный диалог, поддерживающий разные методы ввода (TAP, T9 etc), и ввод текста осуществляется в нем. При закрытии диалога текст передается в жаву). В ряде случаев (игры, например) это сильно неудобно. Как бы реализовать TextField самому, что бы поддерживался и требуетый look'n'feel, и методы ввода, доступные на девайсе? Самостоятельно реализовать TAP можно, но сразу возникают вопросы единообразия с нативной реализацией, да и поддержка японских-китайских и т.п. языков под вопросом... Может кто-нибудь занимался подобными вещами? Поделитесь идеями pls?
Занимался, а в чём проблема? Рисуешь контрол, отлавливаешь нажатия клавиш, рисуешь буковки. Единственно, что не у всех телефонов совпадает расположение и набор букв на кнопках, но в целом всё нормально. Если хочешь японский или ещё какой язык, то рисуй свой шрифт, но тут будет проблема в том, как сообщить пользователю какие символы на каких кнопках находятся.
Для игр нативный TextBox — это, конечно, не дело. И заморачиваться с единообразием с нативной реализацией не стоит.
Когда я разрабатывал игры, ввод имени в рекорды (а это единственное место, где нужен ввод букв) был реализован примерно как на большинстве игры для Денди — на экране весь алфавит, ты курсором выбираешь нужную букву и вставляешь её в поле ввода. Можно придумать всякие эффекты и прочая, но смысл тот же — выбор нужной буквы курсором.
D>Занимался, а в чём проблема? Рисуешь контрол, отлавливаешь нажатия клавиш, рисуешь буковки.
Проблема в том, что использоваться это будет не обязательно в игре. Вполне может быть и бизнес приложение (интерактивный контент, отображаемый фреймвоком определяется сервером), а в нем уже единообразие нативного TAP'а и самостоятельно реализованного уже может быть критичным. К тому же, если русский или английский TAP реализуется элементарно, то как учесть, что в каком-нибудь национальном языке на кнопке, например, 2 кроме символов ABC2 вполне может находиться еще какая-нибудь национальная буква (умляут или т.п.)? В ран-тайме это определить вряд ли получится, надо просто знать...
Здравствуйте, Аноним, Вы писали:
А>Проблема в том, что использоваться это будет не обязательно в игре. Вполне может быть и бизнес приложение (интерактивный контент, отображаемый фреймвоком определяется сервером), а в нем уже единообразие нативного TAP'а и самостоятельно реализованного уже может быть критичным. К тому же, если русский или английский TAP реализуется элементарно, то как учесть, что в каком-нибудь национальном языке на кнопке, например, 2 кроме символов ABC2 вполне может находиться еще какая-нибудь национальная буква (умляут или т.п.)? В ран-тайме это определить вряд ли получится, надо просто знать...
Здравствуйте, Аноним, Вы писали:
А>Проблема в том, что использоваться это будет не обязательно в игре. Вполне может быть и бизнес приложение (интерактивный контент, отображаемый фреймвоком определяется сервером), а в нем уже единообразие нативного TAP'а и самостоятельно реализованного уже может быть критичным.
Да не особо критично, говорю на собственном примере Хотя тут лучше пользователей спросить, но вроде не жалуются. Разве что попросили поддержку qwerty клавиатур, которую и получили.
А>К тому же, если русский или английский TAP реализуется элементарно, то как учесть, что в каком-нибудь национальном языке на кнопке, например, 2 кроме символов ABC2 вполне может находиться еще какая-нибудь национальная буква (умляут или т.п.)? В ран-тайме это определить вряд ли получится, надо просто знать...
Ну да, надо просто знать, по-другому не получится. Но ты же представляешь хотя бы в какой стране будет распространяться твой мидлет? Вот на основные локализованные модели и ориентируйся