ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

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

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),仅供参考

返回列表