Вы можете легко увидеть, как Google реализовал клавиатуры, загрузив Google Wallet APK (или укоренения ваш телефон и потянув APK выключения) и распаковка/декомпиляции его с помощью инструмента (например, Procyon, CFR, JD и т. д.). Я могу только догадываться, но я думаю, что они сделали это, чтобы свести к минимуму возможность использования стороннего приложения для клавиатуры, регистрирующего входные данные, и чтобы они могли «размять» PIN-код в памяти, как только он был использован.
Клавиатура представляет собой всего лишь пучок кнопок, выложенных в виде таблицы/сетки, и кнопки настроены так, чтобы иметь индексный эффект (т. Е. 2ABC
) с использованием SpannableStrings.
После декомпиляции вы можете найти то, что вас интересует, просмотрев пакет com.google.android.apps.wallet.pin
, в частности класс PinButton
. Кроме того, посмотрите на макет /res/layout/pin_view.xml
и его включает (pin_fields.xml
и pin_pad.xml
).
Какой код вы пытались найти? Где конкретно вы сталкиваетесь с трудностями при реализации этого? – Zerp
Я знаю, как реализовать обработку, но использую клавиатуру по умолчанию. Я не знаю, как нарисовать клавиатуру? Использует ли эта клавиатура XML рисовать ее или что-то еще? – Urchin