То, что вы планируете, выглядит выполнимым.Не могу дать много ссылок, потому что не помню ни одной, которая могла бы помочь в таких вещах, как вы делаете.На самом деле, наиболее полезной ссылкой для вас, вероятно, будет ссылка на API MIDP ( JSR 118 ) - ваша часть будет в основном lcdui
пакетом, и особенно Graphics
API.
Asза совет, без проблем.Первое, на что следует обратить внимание, это то, что будет больше кодирования и больше (намного больше) тестирования / отладки, чем было в вашем предыдущем эксперименте с неявным списком .Если вы можете подумать о некоторых возможных требованиях к срокам / срокам, которые могут стать проблемой - просто имейте в виду, что предыдущий проект с неявным списком является запасным вариантом.Это не будет выглядеть фантастически, но будет работать безопасно и правильно.
Еще одна важная вещь - решить, на какие устройства вы собираетесь ориентироваться.Для такого меню, которое вы собираетесь разработать, может быть довольно сложно получить согласованный внешний вид как для базового телефона 160x200 с клавиатурой ITU-T , так и для смартфона с сенсорным экраном 400x600.Ниже я собираюсь предположить, что вы попытаетесь настроить таргетинг на как можно большее количество устройств - обратите внимание, что чем уже вы сможете получить его, тем легче будет его кодировать и тестировать.
При нацеливании на множество различных устройствполезно использовать эмулятор, который можно настроить для имитации различных размеров и разрешения дисплея, наличия или отсутствия сенсорного ввода и т. д. Имейте в виду, что один только этот эмулятор не будет полностью имитировать реальное устройство.Чтобы держать ноги на земле, рассмотрите также некоторые регулярные тесты дыма вашего приложения с реальным устройством, предпочтительно с использованием установки по воздуху (OTA).
Вот некоторые конкретные APIСоветы, которые я могу придумать сейчас.
- Используйте
Canvas.getGameAction
для обработки кода нажатой клавиши - это, вероятно, самый надежный / переносимый способ поиска вверх / вниз и выбора действий для меню. - Используйте
Canvas.hasPointerEvents
, чтобы определить, есть ли поддержка сенсорного экрана.Пользователи с устройствами с сенсорным экраном могут разочароваться, если окажется, что ваше модное меню не реагирует, когда они нажимают на экран. - Используйте
Font.getHeight
и Font.stringWidth
, чтобы определить, сколько места занято текстом пункта меню. - Используйте
Image.getGraphics
, если хотите нарисовать что-либо поверх объекта изображения.
Как я уже говорил, вы, скорее всего, будете делать много вещей, используя lcdui.Graphics
API.В основном это довольно просто, но вам, вероятно, придется разобраться в некоторых хитростях, связанных с отсечкой.Удачи.