当前位置: 首页 > news >正文

PinView API参考速查手册:全部属性与方法一表看懂

PinView API参考速查手册:全部属性与方法一表看懂

【免费下载链接】PinViewA PIN view library for Android. Use to enter PIN/OTP/password etc.项目地址: https://gitcode.com/gh_mirrors/pin/PinView

PinView 是 GitHub 加速计划 / pin 项目下的一个轻量级 Android PIN 输入组件库,专门用于输入 PIN 码、OTP 验证码和密码,支持 Android 4.1(API 16)及以上版本。本文为你整理了一份 PinView API 参考速查手册,把它的全部 XML 属性、Java/Kotlin 方法、默认值和应用场景浓缩成一张表,无论你是刚接触验证码输入控件的新手,还是想快速上手的 Android 开发者,都能一表看懂、拿来即用。

一分钟快速认识 PinView:Android 验证码输入控件是什么?

PinView 本质上是继承自AppCompatEditText的自定义控件,因此它天然拥有 EditText 的全部能力(监听输入、设置字体、处理焦点等),同时额外提供了"格子式"的 PIN 码展示逻辑。核心源码位于 PinView.java,全部 XML 属性声明在 attrs.xml 中。

它的最大特色是viewType 三种显示模式rectangle(方框)、line(下划线)、none(无边框),加上可自定义的光标、圆角、间距和选中态高亮,足以覆盖绝大多数支付、登录、验证码场景的 UI 需求。

最简单的接入步骤:添加依赖并放入布局

build.gradle中添加依赖(Maven Central):

dependencies { implementation 'io.github.chaosleung:pinview:1.4.4' }

然后在布局中直接使用:

<com.chaos.view.PinView android:id="@+id/pinView" style="@style/PinWidget.PinView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputType="number" app:itemCount="4" app:viewType="rectangle" />

完整的示例布局可参考 activity_main.xml,Java 调用示例在 MainActivity.java。

PinView 全部 XML 属性速查表

下表汇总了 PinView 的所有自定义属性、类型、默认值及作用,默认值定义在 dimens.xml 中:

属性类型默认值作用说明
app:itemCountinteger4PIN 码总长度(位数)
app:itemWidthdimension48dp每个格子的宽度
app:itemHeightdimension48dp每个格子的高度
app:itemRadiusdimension5dp格子的圆角半径
app:itemSpacingdimension5dp格子之间的间距
app:lineWidthdimension2dp边框/下划线的宽度
app:lineColorcolor/colorStateList文本色边框颜色,支持状态选择器
app:viewTypeenumrectangle显示模式:rectangle / line / none
android:cursorVisiblebooleantrue是否显示输入光标
app:cursorWidthdimension2dp光标宽度
app:cursorColorcolor文本色光标颜色
android:itemBackgroundreference格子背景(Drawable)
app:hideLineWhenFilledbooleanfalse输入后是否隐藏该格边框

viewType 三种显示样式怎么选?

  • rectangle(方框):最常用的验证码样式,适合登录、支付验证码;
  • line(下划线):清爽的输入线条风格,适合注册/登录表单;
  • none(无边框):配合背景图片或纯文字展示,定制空间最大。

lineColor 选中态高亮配置技巧

想实现"当前输入格高亮"效果,可以用状态选择器(selector),配合state_selected状态:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:color="@color/line_selected" android:state_selected="true" /> <item android:color="@color/line_focused" android:state_focused="true" /> <item android:color="@color/line_default" /> </selector>

再在 XML 中设置android:cursorVisible="true"即可,示例颜色资源见 sample 模块的line_colors.xml

PinView 常用方法速查表:Java/Kotlin API 一表看懂

PinView 的公开方法同样简洁,全部位于 PinView.java:

方法作用说明
setItemCount(int)/getItemCount()动态设置/读取 PIN 长度
setItemWidth(int)/getItemWidth()设置/读取格子宽度
setItemHeight(int)/getItemHeight()设置/读取格子高度
setItemRadius(int)/getItemRadius()设置/读取圆角半径
setItemSpacing(int)/getItemSpacing()设置/读取格子间距
setLineWidth(int)/getLineWidth()设置/读取边框宽度
setLineColor(int)/setLineColor(ColorStateList)设置边框颜色(单色或状态色)
getLineColors()/getCurrentLineColor()读取状态色列表 / 当前颜色
setAnimationEnable(boolean)开启输入文字时的缩放动画
setHideLineWhenFilled(boolean)输入后隐藏对应格边框
setItemBackground(Drawable)设置格子背景图
setItemBackgroundColor(int)设置格子背景纯色
setItemBackgroundResources(int)通过资源 ID 设置格子背景
setCursorVisible(boolean)/isCursorVisible()控制光标显示
setCursorColor(int)/getCursorColor()设置/读取光标颜色
setCursorWidth(int)/getCursorWidth()设置/读取光标宽度
setPasswordHidden(boolean)/isPasswordHidden()程序化切换明文/密文显示
setTypeface(Typeface)设置字体(同步动画画笔)

代码动态配置 PIN 长度与尺寸

大多数场景用 XML 就够了,但动态创建时可以用 Java/Kotlin 一步到位:

PinView pinView = findViewById(R.id.pinView); pinView.setItemCount(6); // 6 位验证码 pinView.setItemWidth(dp2px(52)); // 格子宽 52dp pinView.setItemRadius(dp2px(8)); // 圆角 8dp pinView.setAnimationEnable(true); // 开启输入动画

输入动画与光标控制

调用setAnimationEnable(true)后,每输入一位数字都会触发一个约 150ms 的缩放淡入动画(内部通过ValueAnimator实现,见 PinView.java 的setupAnimator()),体验非常跟手。

密码明文与密文切换

与传统的setTransformationMethod()不同,PinView 提供了更直观的setPasswordHidden(boolean)true时以圆点显示,false时显示明文,非常适合做"眼睛"开关切换,示例见 SecondActivity.java。

常见问题与避坑提示

  • 圆角不能超过半宽rectangle模式下itemRadius不能大于itemWidth的一半,line模式下不能超过lineWidth的一半,否则会抛出IllegalArgumentException(校验逻辑见 PinView.java 的checkItemRadius())。
  • itemSpacing="0dp"时的边框重叠:间距为 0 时库会自动做边框宽度补偿,避免相邻格子线条变粗,无需手动处理。
  • 建议使用官方样式:直接引用@style/PinWidget.PinView(定义在 styles.xml),它已处理好背景透明、单行、隐藏系统光标等细节。

总结

PinView 是一款"小而美"的 Android PIN 输入组件库:属性数量不多但覆盖了尺寸、颜色、圆角、间距、光标、动画、背景全部定制点;方法命名直观,配合本文的速查表即可快速定位 API。如果你正在开发登录、支付或任何需要 OTP 验证码输入界面的 App,这份 PinView API 参考速查手册值得收藏备用。

【免费下载链接】PinViewA PIN view library for Android. Use to enter PIN/OTP/password etc.项目地址: https://gitcode.com/gh_mirrors/pin/PinView

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/1405480/

相关文章:

  • 用AI生成你的Clojure MCP服务器:LLM辅助配置与提示词模板
  • 你的内存条真的在按BIOS设定跑吗?用ZenTimings把AMD内存时序看个明明白白
  • 用Chebfun求解常微分方程:chebop与chebgui从入门到精通的终极指南
  • 深蓝变局:业务稳定且发展潜力巨大的旅游类上市公司有哪些 - 2027品牌AI展
  • 用 SQLGlot 打通多数据库:SQL 解析器 3 大核心能力与跨库迁移实战指南
  • 2026年无锡滨湖区健康管理公司解析:全周期服务与细胞技术如何匹配需求
  • 2026年企业GEO优化培训选型全攻略:3家合规服务商盘点+合作避坑核心FAQ - 商业大观
  • FreeRTOS与ThreadX双平台适配:embedded-resources的RTOS线程支持实现解析
  • 2026广州普拉提教练培训哪家专业?广佛口碑实力梯队盘点 - 米諾
  • 固始专业的视频制作团队口碑好
  • 4步搞定Zotero PDF中文翻译插件:英文文献轻松变中文,双语对照随心读
  • 从零定制:如何基于Materia KDE打造你自己的KDE专属主题
  • 2026郑州布契拉提首饰回收就来毓典奢品汇18617962974全国连锁专业靠谱 - 丽坤奢品汇
  • 进阶实战:基于android_maskable_layout 源码扩展自定义遮罩ViewGroup的完整指南
  • iOS越狱终极完整指南:从机型确认到插件安装的保姆级全流程
  • 2026 年 8 月更新:太原代理记账公司哪家靠谱?5 家正规机构盘点,附实用避坑指南 - 山西融纳集团
  • 臻品玉源玉器行:16载深耕和田玉的直营专业服务商 - 互联网科技品牌测评
  • 潮州湘桥 2026 靠谱防水补漏|本地实体房屋渗漏检测维修服务商 - 超人防水
  • 国产图像传感器芯片崛起,改写具身智能格局
  • 零基础深耕商业摄影:从踩坑迷茫到高薪就业的完整求学实录 - 职业学校推荐官
  • 攀枝花市正规防水补漏公司 (2026 新) 地下室漏水:本地专业团队推荐,解决老房新屋渗水难题 - 用户198513
  • Visual Components碰撞检测精度能满足焊接产线吗?
  • 深入 SmartBugs 源码:从 CLI 参数到 Docker 任务调度的执行全流程
  • HyperNetX 数据互操作指南:HIF 超图交换格式与 XGI、HGX 跨库协作
  • 2026新疆和田玉品牌推荐:国石玉源等3家**企业实测对比 - 互联网科技品牌测评
  • 一条命令解密 PyInstaller 打包 exe:PyInstaller 逆向分析入门与 PyInstxtractor 使用教程
  • OpenMower配置大全:mower_config环境变量逐项详解(含NTRIP/RTK关键参数)
  • 2026年08月广东省化妆品展柜工艺实测手册:10大质量通病溯源与标准化验收指南
  • GTA5线上小助手免费使用教程:一款快速提升游戏体验的全能辅助工具
  • 想在网页里剪视频?这个React视频编辑组件三步就能上手