Я создаю свое первое приложение для Android, которое представляет собой простую игру. Я сделал это, расширив класс Activity и используя 2D-графику, чтобы рисовать на экране с помощью Canvas (для учебных целей).Получение пользовательского ввода в игру для Android
Теперь я хотел бы получить инициалы пользователя/игрока, и мне нужно что-то вроде компонента, чтобы прочитать его. Я мог бы пойти и нарисовать клавиатуру самостоятельно и связать сенсорным прослушивателям с ней/прочитать события касания, но я понял, что в Android уже есть что-то подобное, например, клавиатура программного обеспечения. Один из вариантов, о котором я думал, - использовать компонент EditText.
Могу ли я визуализировать программную клавиатуру или компонент EditText с помощью Canvas? EditText и KeyBoardView, похоже, имеют метод ничья (холст-холст). Правильно ли это будет? Как установить координаты для рисования компонента?
Если это сработает, макет и общий внешний вид, вероятно, не связаны с внешним видом игры, было бы правильное предположение? (что означает, что мне все равно нужно будет его реализовать самостоятельно?)
Заранее благодарим!
Скорее всего, это сработает, я уверен. Я не могу заставить это работать, хотя из-за того, что моя игра содержит «экраны» или «взгляды» на своем, и мне нужно будет использовать EditText на одном из этих «экранов». Я получаю исключение, которое в основном бросается, потому что я пытаюсь извлечь из рабочего потока вместо потока пользовательского интерфейса. – user2832636
В вашей деятельности просто установите видимость EditText на «go», создайте прослушиватель с помощью метода, который устанавливает его обратно в «visible», а затем вызывает его на тех «экранах», когда это необходимо. –
Я вижу. Как насчет того, будет ли у меня десятки виджетов, которые я хотел бы использовать для разных целей? Мне нужно было бы создать их все в своей деятельности, установить видимость для Gone и использовать слушателей? Это кажется немного неуклюжим, так как я хотел бы, чтобы каждый класс отвечал за свои действия и не имел ни одного массивного класса, содержащего все переменные и т. Д. Если бы я делал это в openGL, я, вероятно, вообще не мог бы использовать виджеты , но я думаю, что моя проблема немного похожа. У меня есть «экран», который не нарисован нитью UI, что бы я подумал, что версия openGL тоже будет? – user2832636