ViewfinderView

Android 取景视图组件
授权协议 Apache
开发语言 Kotlin Java
所属分类 手机/移动开发、 Android UI 组件
软件类型 开源软件
地区 国产
投 递 者 韩宏朗
操作系统 Android
开源组织
适用人群 未知
 软件概览

ViewfinderView 是一个取景视图:主要用于渲染扫描相关的动画效果。其样式主要分为两大类:classic:经典样式(带扫描框)、popular:流行样式(不带扫描框);可任意定制。

如果你之前有使用过 ZXingLite  MLKit,可能会用到其内部的 ViewfinderView。现已将 ViewfinderView 独立出来,便于后续统一维护。

以后ZXingLiteMLKitWeChatQRCode 都将直接使用此 ViewfinderView 作为通用的扫描渲染视图。

Gif 展示

你也可以直接下载 演示App 体验效果

ViewfinderView属性说明

属性 属性类型 默认值 属性说明
vvViewfinderStyle enum classic 取景框样式;支持:classic:经典样式(带扫描框)、popular:流行样式(不带扫描框)
vvMaskColor color #60000000 扫描区外遮罩的颜色
vvFrameColor color #7F1FB3E2 扫描区边框的颜色
vvFrameWidth dimension   扫描框宽度
vvFrameHeight dimension   扫描框高度
vvFrameRatio float 0.625f 扫描框与屏幕占比,当未设置扫描框的宽高时,使用占比来计算宽高
vvFrameLineStrokeWidth dimension 1dp 边框线宽度
vvFramePaddingLeft dimension 0 扫描框左边的内间距
vvFramePaddingTop dimension 0 扫描框上边的内间距
vvFramePaddingRight dimension 0 扫描框右边的内间距
vvFramePaddingBottom dimension 0 扫描框下边的内间距
vvFrameGravity enum center 扫描框对齐方式
vvFrameCornerColor color #FF1FB3E2 扫描区边角的颜色
vvFrameCornerSize dimension 16dp 扫描区边角的大小
vvFrameCornerStrokeWidth dimension 4dp 扫描区边角的描边宽度
vvFrameDrawable reference   扫描框自定义图片
vvLaserLineHeight dimension 5dp 激光扫描线高度
vvLaserMovementSpeed dimension 2dp 激光扫描线的移动速度
vvLaserAnimationInterval integer 20 扫描动画延迟间隔时间,单位:毫秒
vvLaserGridColumn integer 20 网格激光扫描列数
vvLaserGridHeight integer 40dp 网格激光扫描高度,为0dp时,表示动态铺满
vvLaserColor color #FF1FB3E2 扫描区激光线的颜色
vvLaserStyle enum line 激光扫描的样式
vvLaserDrawable reference   激光扫描线自定义图片
vvLaserDrawableRatio float 0.625f 激光扫描图片与屏幕占比
vvLabelText string   扫描提示文本信息
vvLabelTextColor color #FFC0C0C0 提示文本字体颜色
vvLabelTextSize dimension 14sp 提示文本字体大小
vvLabelTextPadding dimension 24dp 提示文本距离扫描区的间距
vvLabelTextWidth dimension   提示文本的宽度,默认为View的宽度
vvLabelTextLocation enum bottom 提示文本显示位置
vvPointColor color #FF1FB3E2 结果点的颜色
vvPointStrokeColor color #FFFFFFFF 结果点描边的颜色
vvPointRadius dimension 15dp 结果点的半径
vvPointStrokeRatio float 1.2 结果点描边半径与结果点半径的比例
vvPointDrawable reference   结果点自定义图片
vvPointAnimation boolean true 是否显示结果点的动画
vvPointAnimationInterval integer 3000 结果点动画间隔时长;单位:毫秒

ViewfinderView相关的自定义属性统一使用 vv 开头。

引入

Gradle:

  1. 在Project的 build.gradle 里面添加远程仓库
allprojects {
    repositories {
        //...
        mavenCentral()
    }
}
 
  1. 在Module的 build.gradle 里面添加引入依赖项
// AndroidX 版本
implementation 'com.github.jenly1314:viewfinderview:1.0.0'
 

示例

布局示例

ViewfinderView 相关的自定义属性可参见上面的 ViewfinderView属性说明

    <com.king.view.viewfinderview.ViewfinderView
        android:id="@+id/viewfinderView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:vvLaserStyle="line" />
 相关资料
  • 问题内容: 我正在从JSON Web服务获取此数据 通过使用以下代码: 这是我正在使用的选择器代码: 应用程序崩溃了 委托方法的。我不明白-为什么我要面对这个问题? //码//// 问题答案: 回答我自己的问题可以指导其他人是否遇到相同的问题,实际上,我在这里所做的工作是获取所需的标识数组:DEMO如下: 使用该代码后,我已正确获取所需数据的数组

  • 我知道有很多关于如何在IOS6中强制定向的线程,但它们似乎都不适合我,所以现在我需要一些帮助来解决这个问题。 我有一个基于导航的应用程序,它有许多视图控制器。除了必须在横向模式下加载(用户无需先转动手机)的视图外,所有这些视图都是纵向视图。 在导航控制器的实现中,我添加了shouldAutorotate、supportedInterfaceOrientations和preferredInterfa

  • 在过去,Google提供了碎片类(这里我也问过我们什么时候应该使用它)。 现在,Android 4.4有了一个新的框架类,叫做“场景”。 根据我所读到的(和在课堂上看的,例如这里),它应该帮助你在状态之间的动画和转换。 这个有官方的样品吗? 是否有兼容库,可以在4.4之前的版本上使用它?

  • Navigate the Scene View quickly and efficiently with the Scene View controls. 利用场景视图控制器快速有效地操控场景视图。 Arrow Movement 用箭头移动 Use Arrow Keys to move around the scene. Holding down Shift will make you move

  • 接口说明 根据场景ID获取场景默认视角 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /api/viewpoint/1.0.0/get 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 id string form 是 场景ID 响应字段说明 参数 类型 说明 guid String 视点ID dataGuid

  • 19.7 XML编组视图 MarshallingView使用org.springframework.oxm包中定义的XML Marshaller将响应内容呈现为XML。 要编组的对象可以使用MarhsallingView的`modelKey bean属性显式设置。 或者,视图将遍历所有模型属性并编组Marshaller支持的第一个类型。 有关org.springframework.oxm软件包中的

  • 我想知道如何更改文本视图的背景,因为我正在从站点解析中提取数据。com,但我不能这样做,我正在尝试这样做。 代码 错误 04-30 11:56:59.156 28388-28691/com。实例ronysueliton。patospizzas E/AndroidRuntime﹕ 致命异常:AsyncTask#2进程:com。实例ronysueliton。patospizzas,PID:28388爪

  • The Scene View is your interactive sandbox. You will use the Scene View to select and position environments, the player, the camera, enemies, and all other GameObjects. Maneuvering and manipulating ob