返回顶部
首页 > 资讯 > 精选 >如何在Android中使用高亮引导库
  • 480
分享到

如何在Android中使用高亮引导库

2023-06-14 19:06:44 480人浏览 泡泡鱼
摘要

这期内容当中小编将会给大家带来有关如何在Android中使用高亮引导库,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Android是什么Android是一种基于linux内核的自由及开放源代码的操作系统,

这期内容当中小编将会给大家带来有关如何在Android中使用高亮引导库,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

Android是什么

Android是一种基于linux内核的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发

HighlightPro 是Android的一个高亮引导库,同时它还可以是一个简单的popup window库

功能:

  • 可一次显示一个或多个高亮view

  • 通过水平约束和竖直约束来准确定位提示view

  • 自定义提示view的出现动画

  • 自定义高亮形状和大小

  • 自定义高亮形状的paint

  • 链式调用,使用简单

  • 支持简单的pop window

效果图:

如何在Android中使用高亮引导库

如何在Android中使用高亮引导库

如何在Android中使用高亮引导库

用法:

Gradle

项目级的build.gradle文件种添加Maven存储仓库Jitpack:

allprojects {    repositories {        ...        maven { url 'https://jitpack.io' }    }}

添加依赖到你的app的build.gradle 文件中:

dependencies {implementation 'com.GitHub.hyy920109:GuidePro:1.0.3'}

代码

我们可以通过Activity Fragment ViewGroup其中一个拿到HighlightPro对象:

fun with(activity: Activity): HighlightPro {    return HighlightPro(activity)}fun with(fragment: Fragment): HighlightPro {    return HighlightPro(fragment)}fun with(view: ViewGroup): HighlightPro {    return HighlightPro(view)}

简单的完整链式调用

HighlightPro.with(this)            .setHighlightParameter {                HighlightParameter.Builder()                    .setHighlightViewId(R.id.btn_step_first)                    .setTipsViewId(R.layout.guide_step_first)                    .setHighlightShape(RectShape(4f.dp, 4f.dp, 6f))                    .setHighlightHorizontalPadding(8f.dp)                    .setConstraints(Constraints.StartToEndOfHighlight + Constraints.TopToTopOfHighlight)                    .setMarginOffset(MarginOffset(start = 8.dp))                    .build()            }            .setBackgroundColor("#80000000".toColorInt())            .setOnShowCallback { index ->                //do something            }            .setOnDismissCallback {                //do something            }            .show()

如果你想一次展示多个高亮view可以看如下代码(区别是传入的是一个List):

HighlightPro.with(this)            .setHighlightParameters(                HighlightParameter.Builder()                    .setHighlightViewId(R.id.btn_step_first)                    .setTipsViewId(R.layout.guide_step_first)                    .setHighlightShape(RectShape(4f.dp, 4f.dp, 6f))                    .setHighlightHorizontalPadding(8f.dp)                    .setConstraints(Constraints.StartToEndOfHighlight + Constraints.TopToTopOfHighlight)                    .setMarginOffset(MarginOffset(start = 8.dp))                    .build()                        +                HighlightParameter.Builder()                    .setHighlightViewId(R.id.btn_step_second)                    .setTipsViewId(R.layout.guide_step_second)                    .setHighlightShape(RectShape(4f.dp, 4f.dp, 6f))                    .setHighlightHorizontalPadding(8f.dp)                    .setConstraints(Constraints.StartToEndOfHighlight + Constraints.TopToTopOfHighlight)                    .setMarginOffset(MarginOffset(start = 8.dp))                    .build()            )            .setBackgroundColor("#80000000".toColorInt())            .setOnShowCallback { index ->                //do something            }            .setOnDismissCallback {                //do something            }            .show()

如果我们连环展示高亮view(比如第一步、第二步。。。),可以采用多次调用setHighlightParameter, 代码如下:

HighlightPro.with(this)    .setHighlightParameter {        HighlightParameter.Builder()            .setHighlightViewId(R.id.btn_step_first)            .setTipsViewId(R.layout.guide_step_first)            .setHighlightShape(RectShape(4f.dp, 4f.dp, 6f))            .setHighlightHorizontalPadding(8f.dp)            .setConstraints(Constraints.StartToEndOfHighlight + Constraints.TopToTopOfHighlight)            .setMarginOffset(MarginOffset(start = 8.dp))            .build()    }    .setHighlightParameter {        HighlightParameter.Builder()            .setHighlightViewId(R.id.btn_step_second)            .setTipsViewId(R.layout.guide_step_second)            .setHighlightShape(CircleShape())            .setHighlightHorizontalPadding(20f.dp)            .setHighlightVerticalPadding(20f.dp)            .setConstraints(Constraints.TopToBottomOfHighlight + Constraints.EndToEndOfHighlight)            .setMarginOffset(MarginOffset(top = 8.dp))            .build()    }    .setHighlightParameter {        HighlightParameter.Builder()            .setHighlightViewId(R.id.btn_step_third)            .setTipsViewId(R.layout.guide_step_third)            .setHighlightShape(OvalShape())            .setHighlightHorizontalPadding(12f.dp)            .setHighlightVerticalPadding(12f.dp)            .setConstraints(Constraints.BottomToTopOfHighlight + Constraints.EndToEndOfHighlight)            .setMarginOffset(MarginOffset(bottom = 6.dp))            .build()    }    .setBackgroundColor("#80000000".toColorInt())    .setOnShowCallback { index ->        //do something    }    .setOnDismissCallback {        //do something    }    .interceptBackPressed(true)    .show()

如果我们想现实pop window, 可以通过enableHighlight来控制,传入false 就代表了不会高亮target view:

HighlightPro.with(this)    .setHighlightParameter {        HighlightParameter.Builder()            .setHighlightViewId(R.id.btn_tips_bottom)            .setTipsViewId(R.layout.pop_tips_layout_bottom)            .setConstraints(Constraints.TopToBottomOfHighlight + Constraints.EndToEndOfHighlight)            .setMarginOffset(MarginOffset(end = (-2).dp))            .build()    }    .enableHighlight(false)//禁用highlight    .interceptBackPressed(true)//拦截返回键,返回键会导致 popwindow消失    .show()

api 文档

关于 HighlightParameter.Builder

方法名方法描述
setHighlightViewId设置高亮view的id
setHighlightView设置高亮view
setTipsViewId设置提示view的id
setTipsView设置提示view
setHighlightShape设置高亮形状
setHighlightVerticalPadding设置高亮区域的竖直padding
setHighlightHorizontalPadding设置高亮区域的水平padding
setConstraints设置提示view的相关约束
setMarginOffset设置提示view的偏移量
build返回一个 HighlightParameter 对象

注意

  • setHighlightViewId & setHighlightView

  • setTipsViewId & setTipsView

对于上面两组方法,你只需要使用每组中其中一个方法。如果都没使用,UI 表现会不正常

关于 HighlightShape

HighlightShape方法描述
RectShape边缘模糊的矩形图形
CircleShape边缘模糊的圆形
OvalShape边缘模糊的椭圆形

注意

任何形状都是基于高亮view在屏幕中的矩形区域,我们可以通过setHighlightVerticalPaddingsetHighlightHorizontalPadding来扩大高亮区域

关于 Constraints

这个类是决定提示view位置的核心类,类似于Android自带的约束布局,目前我们所有的约束均依赖于高亮view

Vertical Constraints属性描述
TopToTopOfHighlight将提示view顶部和高亮矩形顶部对齐
TopToBottomOfHighlight将提示view顶部和高亮矩形底部对齐
BottomToBottomOfHighlight将提示view底部和高亮矩形底部对齐
BottomToTopOfHighlight将提示view底部和高亮矩形顶部对齐
Horizontal Constraint属性描述
StartToStartOfHighlight将提示view左侧和高亮矩形左侧对齐
StartToEndOfHighlight将提示view左侧和高亮矩形右侧对齐
EndToEndOfHighlight将提示view右侧和高亮矩形右侧对齐
EndToStartOfHighlight将提示view右侧和高亮矩形左侧对齐

注意

通常我们就设置两个约束:一个竖直约束,一个水平约束,而且我们可以通过运算符重载+来构建约束集合

Constraints.TopToBottomOfHighlight + Constraints.EndToEndOfHighlight

当然我们也可以设置偏移量来调整提示view的位置:

setMarginOffset(MarginOffset(start = 8.dp))

上述就是小编为大家分享的如何在Android中使用高亮引导库了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网精选频道。

--结束END--

本文标题: 如何在Android中使用高亮引导库

本文链接: https://lsjlt.com/news/274339.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何在Android中使用高亮引导库
    这期内容当中小编将会给大家带来有关如何在Android中使用高亮引导库,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Android是什么Android是一种基于Linux内核的自由及开放源代码的操作系统,...
    99+
    2023-06-14
  • 超好用的Android高亮引导库的使用
    简介 HighlightPro 是Android的一个高亮引导库,同时它还可以是一个简单的popup window库 功能: 可一次显示一个或多个高亮view 通过...
    99+
    2024-04-02
  • 如何在Android中使用TextView实现词组高亮
    这篇文章给大家介绍如何在Android中使用TextView实现词组高亮,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。HighlightTextViewAndroid文本高亮控件,基于View实现。特点文本高亮单词自动...
    99+
    2023-05-30
    android textview
  • 如何在Android中使用SQLite数据库
    本篇文章为大家展示了如何在Android中使用SQLite数据库,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。SQLite简介:SQLite是Android系统采用的一种开源的轻量级的关系型的数据库...
    99+
    2023-05-31
    android sqlite 数据库
  • Java高版本Api在Android中如何使用
    这篇文章主要介绍“Java高版本Api在Android中如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java高版本Api在Android中如何使用”文章能帮助大家解决问题。Android插...
    99+
    2023-06-30
  • 怎么在Android中利用TextView实现词组高亮
    这篇文章将为大家详细讲解有关怎么在Android中利用TextView实现词组高亮,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。HighlightTextViewAndroid文本高亮控件,...
    99+
    2023-05-30
    android textview
  • 如何用Vue实现点击导航高亮效果
    本篇内容介绍了“如何用Vue实现点击导航高亮效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、项目环境准备在开始前,需要先准备一个使用V...
    99+
    2023-07-05
  • 如何在PyQt5中使用QListView实现一个代码高亮功能
    今天就跟大家聊聊有关如何在PyQt5中使用QListView实现一个代码高亮功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。使用setCurrentIndex(int) 来设置if...
    99+
    2023-06-14
  • 解决PyCharm中导入cv2,函数能正常使用,但不显示函数引用,并高亮提示在‘__init__.py‘中找不到引用
    笔者在PyCharm中使用的解释器是anaconda3中包含的Python 3.10,在Anaconda Prompt中输入以下内容安装opencv-python和opencv-contrib-python: pip install ope...
    99+
    2023-08-31
    pycharm python opencv
  • 在Android开发中使用View制作一个引导动画
    这篇文章将为大家详细讲解有关在Android开发中使用View制作一个引导动画,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、实现效果图关于贝塞尔曲线 二、实现代码自定义viewpacka...
    99+
    2023-05-31
    android view
  • sublime text中如何使用dockerfile语法高亮插件
    sublime text中如何使用dockerfile语法高亮插件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。打开sublime text,选择“浏览插件”:会自动打开该...
    99+
    2023-06-04
  • 如何使用Python VTK高亮显示actor
    前言: VTK,(visualizationtoolkit)是一个开放资源的免费软件系统,主要用于三维计算机图形学、图像处理和可视化。Vtk是在面向对象原理的基础上设计和实现的,它的...
    99+
    2024-04-02
  • 如何在 ASP 中使用索引?
    在 ASP 中使用索引是优化数据库性能的一个重要步骤。索引可以让数据库在查询数据时更快速地定位到需要的数据,从而提高查询效率。本文将介绍如何在 ASP 中使用索引。 一、什么是索引? 索引是一种数据结构,它可以让数据库系统更快速地定位到需要...
    99+
    2023-07-30
    数据类型 索引 框架
  • 如何在Android Studio项目中导入第三方类库
    本篇文章给大家分享的是有关如何在Android Studio项目中导入第三方类库,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。第三方类库源码将一网友的XMPP代码从ADT转到A...
    99+
    2023-05-31
    studio android 第三
  • 如何在java中使用软引用
    这期内容当中小编将会给大家带来有关如何在java中使用软引用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面向...
    99+
    2023-06-14
  • 如何用Google Code Prettify页面语法高亮JS库
    本篇文章为大家展示了如何用Google Code Prettify页面语法高亮JS库,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Google Code Pretiffy 是 Google 的一个用...
    99+
    2023-06-17
  • 如何在 Unix 系统中使用 NumPy 库进行索引?
    NumPy 是一款优秀的 Python 库,它提供了许多高效的数学函数和数据结构,特别是用于科学计算和数据分析。在 Unix 系统中使用 NumPy 库进行索引是一个非常常见的任务,本文将介绍如何使用 NumPy 进行索引,以及如何在 U...
    99+
    2023-09-20
    numy unix 索引
  • 如何在PostgreSQL数据库中创建和使用索引
    在PostgreSQL数据库中,可以通过以下步骤来创建和使用索引: 创建索引: 使用CREATE INDEX语句可以在表上创建索引...
    99+
    2024-04-02
  • 如何在Go中使用索引来提高并发性能?
    在Go语言中,使用索引可以提高并发性能是一个非常重要的话题。索引可以帮助我们在并发场景下更快速地访问数据,从而提高程序的响应速度和并发处理能力。在本文中,我们将介绍如何在Go语言中使用索引来提高并发性能,并演示一些实际的代码例子。 一、什么...
    99+
    2023-11-15
    git 索引 并发
  • 如何在SQLite中使用索引来提高查询性能
    在SQLite中使用索引可以大大提高查询性能。以下是一些使用索引提高性能的方法: 创建索引:可以在需要加速的列上创建索引,通过在查...
    99+
    2024-04-09
    SQLite
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作