背景:

因为在项目上,多个模块的相似部分要确保体感一致,然而在相关的PRD上,大家基本都是一致,可是扛不住有些同学“卷人不悔”的操作,硬生生在搜索框上搞了个放大镜的效果,虽然只是一个一看就知道是用当前框架功能做出来的,但也有一种被强上的感觉。

其实一别两宽,各自安好多好,非要整这些花里胡哨的,不过后续产品肯定会要求一致的,所以记录一下,到时候直接抄作业吧。

Magnifier

Magnifier在 API28 之后已经被支持了,也就是Android9,我们的高P,刚好要跑的项目系统版本也是Android9,所以妥妥的使用系统提供的组件就可以了。

官网链接来一个:

https://developer.android.com/guide/topics/text/magnifier?hl=zh-cn#kotlin

实操

其实只是一个很简单的控件调用,就不多解释了,里面的原理和做法有时间再去琢磨琢磨。

贴代码和效果如下:

var magnifier: Magnifier? = null
@RequiresApi(Build.VERSION_CODES.P)
@SuppressLint("ClickableViewAccessibility")
override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)mBinding = DataBindingUtil.setContentView(this,R.layout.activity_main)mBinding.lifecycleOwner = thissetContentView(mBinding.root)mBinding.editText.setOnTouchListener { view, event ->when (event.actionMasked) {MotionEvent.ACTION_DOWN, MotionEvent.ACTION_MOVE -> {val viewPosition = IntArray(2)view.getLocationOnScreen(viewPosition)magnifier!!.show(event.rawX - viewPosition[0], event.rawY - viewPosition[1])}MotionEvent.ACTION_CANCEL, MotionEvent.ACTION_UP -> {magnifier!!.dismiss()}}true}magnifier = Magnifier(mBinding.editText)
}

妥妥的官网代码全复制,不过看了一下效果,满足需求了,如果在细节上还有什么调整,估计就要好好看看代码在瞅瞅。

效果图:

输入框上的Magnifier相关推荐

  1. android自动让输入框上划,Android界面技巧:当输入法调出时,如何让界面自动上移,使输入法不会遮挡到主界面(Activity)...

    android:windowSoftInputMode activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性. 这个属性能影响两件事情: [一] ...

  2. html在背景上自动打字,Js制作点击输入框时默认文字消失的效果

    为了提高用户体验和易用度,一些设计师会对网页中用户经常用的东西进行优化,比如输入框.一般的输入框是怎样优化的呢?从用户体验的角度出发,简化用户使用步骤,让用户用得更方便就是提高了易用性,例如当鼠标悬浮 ...

  3. input反应慢 vue_Vue v-model实时更新带来的输入框卡顿问题

    背景 最近在开发的时候,发现在内容较多的页面上对v-model绑定的输入框上输入内容,页面会变得很卡顿,有些带有动画的元素还会闪动,初步怀疑是v-model实时更新引起整个组件(页面)的 re-ren ...

  4. jsp点击按钮弹出输入框_按键精灵UI界面的输入框原来是这样使用的

    金猪脚本(原飞猪脚本)以按键精灵教学为主,涉及UiBot,Python,Lua等脚本编程语言,教学包括全自动办公脚本,游戏辅助脚本,引流脚本,网页脚本,安卓脚本,IOS脚本,注册脚本,点赞脚本,阅读脚 ...

  5. MFC中制作一个似命令行的输入框

    在做一个MFC软件的时候有一个这样的需求,就是要有类似与AutoCad的命令输入框,如下图所示: 本着不重写已有功能的原则,在MFC中发掘了一圈,没发现有可用的现成控件,上网搜了一下,发现有人做过,但 ...

  6. web实现文件上传的方式总结

    文章目录 基本上传方式 访问文件 传统的 DOM 选择器访问一个已经被选择的文件 通过 change 事件访问被选择的文件 动态添加change监听器 Ajax 上传 监测上传进度 分割上传 拖拽上传 ...

  7. 用python识别微信消息界面聊天输入框位置

    阅读文章,大约需要5分钟时间 文章目录 前言 如何实现? 算法思路分析 代码如下 总结 前言 如果想要识别电脑屏幕上微信输入框的位置,有什么办法呢? 这里提出了一种通过屏幕像素来识别的思路. 如何实现 ...

  8. 强烈推荐!CSDN浏览器助手,让你的浏览器上10个档次!

    文章目录 前言 1. 初体验 2. 下载安装 3. 强大的功能 1. 浏览器门面,换肤功能 2. 便捷的操作,个性化网站入口 3. 超懂我的操作,快速搜索 4. 超方便的操作,常用工具 5. 极致的用 ...

  9. HTML5实现图片上传与预览

    File API File - 独立文件:提供只读信息,例如名称.文件大小.mimetype 和对文件句柄的引用. FileList - File 对象的类数组序列(考虑多文件上传或者从桌面拖动目录或 ...

最新文章

  1. PHP获取文件后缀名
  2. Python collection模块
  3. Linux 初始化系统(系统服务管理和控制程序/Init System) -- System V init(SysV init) 的简单理解
  4. linux 开源谷歌浏览器_开发人员浏览器,Google开源版本等
  5. redis使用lua脚本
  6. 解决Eclipse Pydev中import时报错:Unresolved import
  7. git推送代码的命令详解
  8. SharePoint 报告工具 (SPReport)
  9. LINUX安装QT的命令
  10. qpsk matlab仿真,QPSK 调制与解调(Matlab仿真)
  11. Excel制作抽奖小程序
  12. php调用纯真ip,PHP调用纯真IP数据库返回具体地址
  13. 树莓派开发笔记(七):GPIO口的SPI使用(BME280三合一传感器:测量温度、湿度、气压、海拔高度)
  14. 特朗普签署《美国人工智能倡议》,释放了哪些重要信号?
  15. nxp的bluetooth驱动调试
  16. cocos网络通信php,Cocos2D-X服务器的网络通信编程
  17. 【论文阅读】一种包含同态加密、差分隐私、多方安全计算的FL隐私保护框架 Efficient and Privacy-Enhanced Federated Learning for Industrial
  18. 7-17 最长对称子串
  19. 05_Java筑基之Java开发初体验
  20. 机器人能送药、治病、消毒,最大程度保护医生护士不被传染!

热门文章

  1. 老铁是要塞里最出名的铁匠大师,小铁是老铁的儿子,老铁希望小铁能传承他的衣钵为要塞的骑士们锻造护甲。经近一段时间的学习,小铁逐渐掌握了打铁的技术,但是他很快发现,每一天手臂的力量总是不如前一天
  2. 计算机主机放到什么位置最好,电脑桌放在哪个位置好 这些建议你一定要看
  3. 智能投影机android系统,智能投影机
  4. Mulitisim频率计设计
  5. MOS驱动电机正反转
  6. 【整理】常用电子设备功耗(不定期更新)
  7. 剑灵力士卡刀ahk_剑灵卡刀指令
  8. 那些让你起飞的计算机基础知识!
  9. RISC-V技术杂谈
  10. Redission实现分布式锁完美方案 以及 Lua 脚本浅谈