Giter VIP home page Giter VIP logo

safekeyboard's Introduction

SafeKeyboard

Android自定义安全软键盘,完全自定义,方便、安全、可靠

下一步计划:增加换肤、打包发布等功能

详见:  Android 自定义安全软键盘 SafeKeyboard 开发详细说明 2.0

预览
image

历史更新

八、 2022/04/13

  • 1 . [修改] 修改 SafeKeyboard 使用 EditText.getId() 作为唯一 key 确定 EditText 可能会出现系统键盘和 SafeKeyboard 同时出现的 BUG。 即: include 多次复用同一个布局文件, 存在某个引入的布局文件没有使用 SafeKeyboard 时, 会出现该问题。 见 issue#23
  • 2 . [修改] 修改 部分代码冗余问题.

七、 2022/04/12

  • 1 . [修改] 修改 SafeKeyboard 无法按键震动的问题, 并优化震动开启逻辑
  • 2 . [修改] 修改 未使用 SafeKeyboardEditText imeOption 被设置为 "下一项" 时, 点击此按键可能会导致系统软件盘和 SafeKeyboard 软键盘同时显示的 BUG.
  • 3 . [修改] 修改 SafeKeyboard aar 的命名方式, 确定版本号格式

六、 2022/04/11

  • 1 . [新增] 新增 SafeKeyboardConfig 属性, 所有的键盘配置都在这里个对象里定义, 底层所有可在代码层修改的配置均在 SafeKeyboardConfig 中提供配置接口, 详细参考 MainActivity
  • 2 . [修改] 修改 SafeKeyboard 字母随机功能, 修复上个更新无法切换大小写的问题, 并修改大写未锁定时输入一个大写字母后切换为小写字母时又重复刷新字母位置的问题
  • 3 . [适配] 适配 SafeKeyboard 可设置每个 EditText 是否开启按键震动

五、 2022/04/08

  • 1 . [修改] 修改 SafeKeyboardLibrary (待提供接口以供上层修改必要数据)
  • 2 . [适配] 适配 AndroidX
  • 3 . [新增] 新增 字母键盘随机显示功能, 并修改开启随机的方式, 不直接在 SafeKeyboardView 中设置相关属性

四、 2019/11/17

  • 1 . 修改 SafeKeyboard 显示后遮住目标 EditText 问题 (被遮挡时顶起目标 EditTextView) 功能实现逻辑, 解决动画效果不尽如人意的 BUG.
  • 2 . 增加按键震动功能(可选)

三、 2019/09/26

  • 1 . 解决 SafeKeyboardPopupWindow 中显示会崩溃的问题 (关闭按键预览功能即可). 见 issue#3
  • 2 . 解决 SafeKeyboard 显示后遮住目标 EditText 问题 (被遮挡时顶起目标 EditTextView). 见 issue#8
    暂时只提供这一种解决方案 ( 尚有改进空间 )
  • 3 . 适配 ScrollView 中的 EditText 使用 SafeKeyboard 功能. 详见:   注意事项 (SafeKeyboard_Note)
  • 4 . 解决 SafeKeyboardAlertDialog 中显示无法点击的问题. 采用 DialogFragment 来实现该功能.
  • 5 . 修改多个 EditText 共用一个 SafeKeyboard 时, OnTouch 事件造成 SafeKeyboard 显示混乱的 BUG.
  • 6 . 简化部分 API 调用代码, 并增加一个有数字的字母键盘.

二、 2019/06/22

  • 1 . 支持多个 EditText 共用一个 SafeKeyboard, 各键盘无缝切换
  • 2 . 支持根据不同 EditTextInputType 默认使用不同的键盘(目前仅支持数字键盘和身份证键盘)
  • 3 . 支持锁定英文大写
  • 4 . 增加两种数字键盘、增加一个身份证键盘, 对两种键盘的数字支持随机显示
  • 5 . SafeKeyboard 提供接口指定显示身份证键盘的 EditText
  • 6 . 支持记住每个 EditText 对应的上次打开的键盘类型, 再次显示 SafeKeyboard 时显示该中类型键盘, 此功能可在 SafeKeyboardView 的属性中 打开/关闭
  • 7 . 项目本身支持 lambda 表达式

一、 2018/07/29

  • 1 . AndroidManifest.xml 文件中添加 "android:windowSoftInputMode="stateAlwaysHidden">", 兼容低版本系统, 重新进入软件界面系统软键盘自动弹出的问题。
  • 2 . 解决特殊键盘图标在不同屏幕上显示变形问题, 不需要手动设置图片显示时与按键边界的边距。
  • 3 . SafeKeyboard 提供接口设置特殊按键的自定义图片

safekeyboard's People

Contributors

svalence avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

safekeyboard's Issues

求解图中的数字困惑。

image
目前我尝试了修改字符键盘跟字母键盘随机,但是并未成功,图中的数字是我比较疑惑的地方,针对于数字键盘的随机,字符跟字母键盘是否需要在onDraw方法中做其他处理呢?请赐教。

如题

如果布局中最外一层是ScrollView,且editText在最下面,是有问题,有空看下吧。

希望一直更新下去

对于不同的android版本的适应 。
现在都android10了。
希望一直能更新下去。谢谢。

让键盘关闭

怎样处理点击键盘外面,除EditText以外让键盘关闭

大写锁定后输入$#_等特殊字符后,再次输入字母,会有大写字母变成小写,且切换到小写键盘,小写字母的内容变成空白字符的情况

大佬你好,我这边遇到了个问题,以下是详细描述
大写锁定后输入$#_等特殊字符后,再次输入字母,会有大写字母变成小写,且切换到小写键盘,小写字母的内容变成空白字符

请看附件视频,以及我在控制台中打印的onKey方法的返回值内容
ps(在大写的情况下,去点击大写字母W,onkey返回的内容是小写字母w。切换到小写字母,随便点击一个小写字母,onkey返回的内容是非法字符“�”)

20240314-101504.mp4

20240314-112246
20240314-112300

用起来略微繁琐

感谢作者的分享!功能都实现了,就是用起来略微繁琐哈~要能做成系统弹窗,支持一键调用就好了

怎么把字母联想到汉字呢?

假如我输入了一个字母 不直接放到 输入框 而是像系统键盘一样在上方显示字母联想到的汉字作为候选字 点击确定才写入输入框
目的就是监听候选字 有相关的方法吗

建议

大佬这个写的很奶思,,就是目前没有实现加密功能吧,因为好多金融项目,安全性严谨的项目都有这样要求。

在popup使用崩溃。

在popwindow使用,点击数字键和功能键没有问题,点击字母键和符号键会崩的,报错信息如下:

Unable to add window -- token android.view.ViewRootImpl$W@3b8b6b8 is not valid; is your activity running?
    android.view.WindowManager$BadTokenException: Unable to add window -- token android.view.ViewRootImpl$W@3b8b6b8 is not valid; is your activity running?
        at android.view.ViewRootImpl.setView(ViewRootImpl.java:579)
        at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:310)
        at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
        at android.widget.PopupWindow.invokePopup(PopupWindow.java:1315)
        at android.widget.PopupWindow.showAtLocation(PopupWindow.java:1075)
        at android.widget.PopupWindow.showAtLocation(PopupWindow.java:1038)
        at android.inputmethodservice.KeyboardView.showKey(KeyboardView.java:972)
        at android.inputmethodservice.KeyboardView.access$100(KeyboardView.java:70)
        at android.inputmethodservice.KeyboardView$1.handleMessage(KeyboardView.java:261)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:148)
        at android.app.ActivityThread.main(ActivityThread.java:5563)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:853)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:737)

如何添加按键震动

我想在它点击按键的时候震动
在SafeKeyboard.java ->onKey里面加入

Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

会出现
java.lang.IllegalStateException: System services not available to Activities before onCreate()

不知道如何解决,请教一下。

反应慢

我直接吧源文拖过来用的,但是我的项目是kotlin写的,用的androidx,软键盘用起来响应非常慢,按快了软键盘根本反应不过来

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.