输入框上的Magnifier
背景:
因为在项目上,多个模块的相似部分要确保体感一致,然而在相关的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相关推荐
- android自动让输入框上划,Android界面技巧:当输入法调出时,如何让界面自动上移,使输入法不会遮挡到主界面(Activity)...
android:windowSoftInputMode activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性. 这个属性能影响两件事情: [一] ...
- html在背景上自动打字,Js制作点击输入框时默认文字消失的效果
为了提高用户体验和易用度,一些设计师会对网页中用户经常用的东西进行优化,比如输入框.一般的输入框是怎样优化的呢?从用户体验的角度出发,简化用户使用步骤,让用户用得更方便就是提高了易用性,例如当鼠标悬浮 ...
- input反应慢 vue_Vue v-model实时更新带来的输入框卡顿问题
背景 最近在开发的时候,发现在内容较多的页面上对v-model绑定的输入框上输入内容,页面会变得很卡顿,有些带有动画的元素还会闪动,初步怀疑是v-model实时更新引起整个组件(页面)的 re-ren ...
- jsp点击按钮弹出输入框_按键精灵UI界面的输入框原来是这样使用的
金猪脚本(原飞猪脚本)以按键精灵教学为主,涉及UiBot,Python,Lua等脚本编程语言,教学包括全自动办公脚本,游戏辅助脚本,引流脚本,网页脚本,安卓脚本,IOS脚本,注册脚本,点赞脚本,阅读脚 ...
- MFC中制作一个似命令行的输入框
在做一个MFC软件的时候有一个这样的需求,就是要有类似与AutoCad的命令输入框,如下图所示: 本着不重写已有功能的原则,在MFC中发掘了一圈,没发现有可用的现成控件,上网搜了一下,发现有人做过,但 ...
- web实现文件上传的方式总结
文章目录 基本上传方式 访问文件 传统的 DOM 选择器访问一个已经被选择的文件 通过 change 事件访问被选择的文件 动态添加change监听器 Ajax 上传 监测上传进度 分割上传 拖拽上传 ...
- 用python识别微信消息界面聊天输入框位置
阅读文章,大约需要5分钟时间 文章目录 前言 如何实现? 算法思路分析 代码如下 总结 前言 如果想要识别电脑屏幕上微信输入框的位置,有什么办法呢? 这里提出了一种通过屏幕像素来识别的思路. 如何实现 ...
- 强烈推荐!CSDN浏览器助手,让你的浏览器上10个档次!
文章目录 前言 1. 初体验 2. 下载安装 3. 强大的功能 1. 浏览器门面,换肤功能 2. 便捷的操作,个性化网站入口 3. 超懂我的操作,快速搜索 4. 超方便的操作,常用工具 5. 极致的用 ...
- HTML5实现图片上传与预览
File API File - 独立文件:提供只读信息,例如名称.文件大小.mimetype 和对文件句柄的引用. FileList - File 对象的类数组序列(考虑多文件上传或者从桌面拖动目录或 ...
最新文章
- PHP获取文件后缀名
- Python collection模块
- Linux 初始化系统(系统服务管理和控制程序/Init System) -- System V init(SysV init) 的简单理解
- linux 开源谷歌浏览器_开发人员浏览器,Google开源版本等
- redis使用lua脚本
- 解决Eclipse Pydev中import时报错:Unresolved import
- git推送代码的命令详解
- SharePoint 报告工具 (SPReport)
- LINUX安装QT的命令
- qpsk matlab仿真,QPSK 调制与解调(Matlab仿真)
- Excel制作抽奖小程序
- php调用纯真ip,PHP调用纯真IP数据库返回具体地址
- 树莓派开发笔记(七):GPIO口的SPI使用(BME280三合一传感器:测量温度、湿度、气压、海拔高度)
- 特朗普签署《美国人工智能倡议》,释放了哪些重要信号?
- nxp的bluetooth驱动调试
- cocos网络通信php,Cocos2D-X服务器的网络通信编程
- 【论文阅读】一种包含同态加密、差分隐私、多方安全计算的FL隐私保护框架 Efficient and Privacy-Enhanced Federated Learning for Industrial
- 7-17 最长对称子串
- 05_Java筑基之Java开发初体验
- 机器人能送药、治病、消毒,最大程度保护医生护士不被传染!