keyboardview字母键盘按键与数字键盘高度一致的适配解决办法
简书链接:keyboardview字母键盘按键与数字键盘高度一致的适配解决办法
文章字数:1083,阅读全文大约需要4分钟
虽然最新的键盘不再使用keyboardview开发,但是以前的代码还是要维护,现在接了一个任务 ,要完成pad的适配,于是开始琢磨计算了。
根据设计图,数字键盘和字母键盘高度一样,另外 字母键盘的间隙要好看,所以我主要是先编写字母键盘,然后完成数字键盘。
字母键盘规律,间隙5个 ,按键 4个,
数字键盘 ,按键为4,间隙百分之0.1忽略不计。
1 | <dimen name="key_height_new">5.5%</dimen> |
其中
1 | <dimen name="key_height_new">5.5%</dimen> |
为字母键盘的高度和垂直间隙
公式 是 5.54+(15)= 27, 那么按键是27/4=6.75 实际上数字键盘也有间隙 ,27-(4*间隙百分比)/4才是最准确的。6.65%p
果然,如果不把数字的间隙算进去,就会发现切换到数字键盘,数字键盘高度还是变高了一点点,这个东西呢越小的dp手机看起来越明显。
为了方便,我用了计算器。
最后发现某些手机还是不太对,一定是哪里算错了,通过真机发现,其实数字键盘只有3个分割线,所以公式=((按键行总数*按键高度)+(按键间隔总数*按键间隔值)-(数字键盘间隔总数*间隔百分比值) )/数字键盘行总数
1 | 从上面贴的图来看,应该是 |
下面这个就是比较完美的例子。
1 | <dimen name="key_height_new">9.5%</dimen> |
![OOT)XY~S`G5{@U}DVU0LCA.png
最后我编写了一个程序 3个值不是固定的,其他都是固定的。。。
1 | letterHeightSize=float(input("请输入字母键盘按键高度百分比:")) |
微差
由于间隔线是单数,不太恰当的百分比会感觉非常明显的跳动,至少肉眼能看出来数字键盘和字母键盘不一致,通过调整 1为0.8 0.1为0.12 或者0.08这个肉眼就看不出来了。
最后还是解决不了问题,改数值的办法解决不了所有手机的问题。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 情迁博客!
评论