# vehicle-keyboard-android **Repository Path**: mcjdhjj2020/vehicle-keyboard-android ## Basic Information - **Project Name**: vehicle-keyboard-android - **Description**: 停车王专用车牌键盘 - Android - **Primary Language**: Android - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 18 - **Created**: 2018-05-09 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 停车王车牌号码专用键盘 VehicleKeyboard - Android `VehicleKeyboard`是停车王品牌的各端产品线的基础组件,专为提高中国车牌号码输入速度而定制开发的专用键盘组件,包括以下三个项目: - `Android` Android项目,为Android客户端定制包括输入组件、键盘组件及相关控制逻辑实现; - `iOS` iOS客户端项目,为iOS客户端定制包括输入组件、键盘组件及相关控制逻辑实现; - `JavaScript(Vue.js)` JavaScript(Vue.js)项目,为H5页面定制,包括Web、微信、支付宝等,同样包括输入组件、键盘组件及相关控制逻辑实现 ## 项目主页 ### Android 版本 - GitHub项目主页: [https://github.com/parkingwang/vehicle-keyboard-android](https://github.com/parkingwang/vehicle-keyboard-android) - OSChina项目主页: [https://gitee.com/iRainIoT/vehicle-keyboard-android](https://gitee.com/iRainIoT/vehicle-keyboard-android) ### iOS 版本 - GitHub项目主页: [https://github.com/parkingwang/vehicle-keyboard-ios](https://github.com/parkingwang/vehicle-keyboard-ios) - OSChina项目主页: [https://gitee.com/iRainIoT/vehicle-keyboard-ios](https://gitee.com/iRainIoT/vehicle-keyboard-ios) ### JavaScript Vue.js 版本 - GitHub项目主页: [https://github.com/parkingwang/vehicle-keyboard-js](https://github.com/parkingwang/vehicle-keyboard-js) - OSChina项目主页: [https://gitee.com/iRainIoT/vehicle-keyboard-js](https://gitee.com/iRainIoT/vehicle-keyboard-js) ## 车牌号码规则 1. 艾润物联公司整理的车牌号码规则:[停车王车牌号码专用键盘规则和设计说明](./NumberRules.md) 1. [中华人民共和国民用机动车号牌](https://zh.wikipedia.org/wiki/%E4%B8%AD%E5%8D%8E%E4%BA%BA%E6%B0%91%E5%85%B1%E5%92%8C%E5%9B%BD%E6%B0%91%E7%94%A8%E6%9C%BA%E5%8A%A8%E8%BD%A6%E5%8F%B7%E7%89%8C) ## 添加依赖 增加仓库地址: ```groovy repositories { jcenter() } ``` 添加库依赖: ```groovy implementation 'com.parkingwang:keyboard:0.4.0' // OR compile 'com.parkingwang:keyboard:0.4.0' ``` ## 使用组件 ### 车牌号码输入组件 InputView ![](./PWK_INPUT_VIEW.png) InputView是用于手动输入车牌的组件,提供7-8个用户可选择修改的输入框,如上图所示。 在XML中放置输入组件: ```xml ``` ### 车牌号码键盘组件 - KeyboardView ![](./PWK_KEYBOARD_VIEW.png) KeyboardView是车牌输入键盘组件,提供按车牌类型显示一定规则的键盘布局供用户点击,如上图所示。 在XML中放置键盘组件: ```xml ``` ### 输入框和键盘控制器 - KeyboardInputController 在代码中绑定输入组件与键盘的关联: ##### 使用弹出键盘 详见 MainActivity 的演示代码。 ```java // Init Views // 输入组件View mInputView = findViewById(R.id.input_view); // 锁定新能源车牌View mLockType = findViewById(R.id.lock_type); // 创建弹出键盘 mPopupKeyboard = new PopupKeyboard(this); // 弹出键盘内部包含一个KeyboardView,在此绑定输入两者关联。 mPopupKeyboard.attach(mInputView, this); mPopupKeyboard.getKeyboardView() .setKeyboardType(KeyboardType.CIVIL_WJ); // KeyboardInputController提供一个默认实现的新能源车牌锁定按钮 mPopupKeyboard.getController() .setDebugEnabled(true) .bindLockTypeProxy(new KeyboardInputController.ButtonProxyImpl(mLockType) { @Override public void onNumberTypeChanged(boolean isNewEnergyType) { super.onNumberTypeChanged(isNewEnergyType); if (isNewEnergyType) { mLockType.setTextColor(getResources().getColor(android.R.color.holo_green_light)); } else { mLockType.setTextColor(getResources().getColor(android.R.color.black)); } } }); ``` ##### 不弹出键盘,直接显示 ```java // 使用 KeyboardInputController 来关联 mController = KeyboardInputController .with(mKeyboardView, inputView); mController.useDefaultMessageHandler(); ``` ## 键盘样式设置 ### 设置键盘按钮文字大小 在Java代码中添加以下设置: ```java mKeyboardView.setCNTextSize(float); //设置中文字体大小 mKeyboardView.setENTextSize(float); //设置英文字母或数字字体大小 ``` ### 设置键盘主题颜色 在colors.xml中覆盖以下颜色值以修改键盘主题色 ```xml #418AF9 #3A7CE0 ``` ### 设置输入组件字体大小: ```xml ``` ### 设置输入组件的样式 默认提供两种输入组件样式: #### 1. 混合紧排样式(默认样式) - MIXED ![](./PWK_INPUT_MIXED_STYLE.png) ```xml