[Android开源]:EasyGuideLayer: 这可能是最简单、灵活、强大的页面蒙层组件了!

栏目: 软件资讯 · 发布时间: 6年前

内容简介:顾名思义,具体用法说明请直接前往开源库进行详细了解:EasyGuideLayer是开源基础组件集成库

顾名思义, EasyGuideLayer 是用于进行 Android页面蒙层引导 的组件。

特性

  • 链式调用。调用逻辑清晰直观
  • 支持同时设置多个引导层
  • 支持高亮区域的自定义绘制
  • 支持高亮区域点击监听
  • 支持指定任意View设置蒙层引导
  • 支持进行蒙层展示、隐藏事件监听
  • 支持直接使用drawable创建引导View

示例代码与效果图

1. 对Actiity进行蒙层展示:

CODE:

// 创建引导层展示item
val item = GuideItem.newInstance(findViewById<View>(R.id.layer_layout))
    // 引导view的相对位置
    .setGravity(Gravity.BOTTOM)
    // 用于创建引导View的layout布局,此处为普通的TextView
    .setLayout(R.layout.guide_text_layout)
    // 设置展示的高亮块形状:椭圆形
    .setHighLightShape(GuideItem.SHAPE_OVAL)
    // 此处进行引导View的时间、内容显示控制。比如此处修改TextView的显示内容
    .setOnViewAttachedListener { view, controller ->
        (view as TextView).text = "此处展示下方的各种蒙层展示效果"
    }

EasyGuideLayer.with(activity) // 使用activity实例进行创建。
    .addItem(item) // 将引导层添加进来
    .setDismissOnClickOutside(true)// 点击外部区域时自动隐藏
    .show()
复制代码

效果图:

[Android开源]:EasyGuideLayer: 这可能是最简单、灵活、强大的页面蒙层组件了!

2. 展示简单蒙层:无引导View

CODE:

// 提供统一的蒙层实例创建使用
private fun createDefaultGuide() = 
    EasyGuideLayer.with(anchor)// 指定用于创建蒙层的View
            .setBackgroundColor(0x33000000)
            .setOnGuideShownListener { shown:Boolean ->
                EasyToast.DEFAULT.show("蒙层已${if (shown) "展示" else "消失"}")
            }.setDismissOnClickOutside(true)
...
// 直接创建不添加引导View进行展示
createDefaultGuide().show()
复制代码

效果图:

[Android开源]:EasyGuideLayer: 这可能是最简单、灵活、强大的页面蒙层组件了!

3. 展示gravitiy控制效果

CODE:

// 创建位置-文案关系列表。
private val gravities = listOf(
            Gravity.LEFT or Gravity.TOP to "左上",
            Gravity.TOP to "顶部",
            Gravity.RIGHT or Gravity.TOP to "右上",
            Gravity.LEFT to "左边",
            Gravity.RIGHT to "右边",
            Gravity.LEFT or Gravity.BOTTOM to "左下",
            Gravity.BOTTOM to "底部",
            Gravity.BOTTOM or Gravity.RIGHT to "右下"
    )

fun showWithGravity() {
    var index = 0

    val item = GuideItem.newInstance(findViewById<View>(R.id.anchor_center))
    // 设置gravity与通用引导View
    item.setGravity(gravities[index].first).setLayout(R.layout.guide_text_layout)

    item.setOnViewAttachedListener { view, controller ->
        (view as TextView).text = gravities[index].second
        view.setOnClickListener {
            // 点击后重置gravity信息并重新展示
            try {
                index++
                item.setGravity(gravities[index].first)
                controller.getGuideLayer().show()
            } catch (e:IndexOutOfBoundsException) {
                // 所有gravity效果展示完成后。让蒙层消失
                controller.dismiss()
            }
        }
    }

    createDefaultGuide()
            .addItem(item)
            .show()
}
复制代码

效果图:

[Android开源]:EasyGuideLayer: 这可能是最简单、灵活、强大的页面蒙层组件了!

4. 展示不同的高亮样式

CODE:

val layer = createDefaultGuide()
// 背景色调深点便于查看高亮块
layer.setBackgroundColor(0x66000000) 

// 顶部高亮块:使用椭圆形状
val topItem = GuideItem.newInstance(findViewById<View>(R.id.anchor_top))
        .setHighLightShape(GuideItem.SHAPE_OVAL)
        .setOnHighLightClickListener { EasyToast.DEFAULT.show("顶部高亮区域被点击") }

// 中间高亮块:使用矩形形状
val centerItem = GuideItem.newInstance(findViewById<View>(R.id.anchor_center))
        .setHighLightShape(GuideItem.SHAPE_RECT)
        .setOnHighLightClickListener { EasyToast.DEFAULT.show("中央高亮区域被点击") }

// 底部高亮块:使用自定义绘制,圆角矩形形状
val bottomItem = GuideItem.newInstance(findViewById<View>(R.id.anchor_bottom))
        .setOnDrawHighLightCallback { canvas, rect, paint ->
            canvas.drawRoundRect(rect, 30f, 30f, paint)
        }.setOnHighLightClickListener { EasyToast.DEFAULT.show("底部高亮区域被点击") }

layer.addItem(topItem).addItem(centerItem).addItem(bottomItem).show()
复制代码

效果图:

[Android开源]:EasyGuideLayer: 这可能是最简单、灵活、强大的页面蒙层组件了!

5. 动态计算调整引导View位置

CODE:

val item = GuideItem.newInstance(findViewById<View>(R.id.anchor_center))
        .setLayout(R.layout.guide_text_layout)
        .setOnViewAttachedListener { view, controller ->
            (view as TextView).text = "中央展示hehehehe "
        }.setOffsetProvider { point, rectF, view ->
            // 在此根据具体尺寸计算出中央位置
            point.offset(((rectF.width() - view.width) / 2).toInt(), 0)
        }.setGravity(Gravity.TOP)

createDefaultGuide().addItem(item).show()
复制代码

效果图:

[Android开源]:EasyGuideLayer: 这可能是最简单、灵活、强大的页面蒙层组件了!

用法

具体用法说明请直接前往开源库进行详细了解: EasyGuideLayer

开源简介

EasyGuideLayer是开源基础组件集成库 EasyAndroid 中的基础组件之一。

EasyAndroid 作为一款集成组件库,此库中所集成的组件,均包含以下特点,你可以放心使用~~

1. 设计独立

组件间独立存在,不相互依赖,且若只需要集成库中的部分组件。也可以很方便的 只copy对应的组件文件 进行使用

2. 设计轻巧

因为是组件集成库,所以要求每个组件的设计尽量精练、轻巧。避免因为一个小功能而引入大量无用代码.

每个组件的方法数均 不超过100 . 大部分组件甚至 不超过50

得益于编码时的 高内聚性 ,若你只需要使用EasyGuideLayer. 那么可以直接去拷贝 EasyGuideLayer源码文件 到你的项目中,直接进行使用,也是没问题的。

EasyAndroid开源库地址:

github.com/yjfnypeu/Ea…

EasyGuideLayer组件地址:

github.com/yjfnypeu/Ea…


以上所述就是小编给大家介绍的《[Android开源]:EasyGuideLayer: 这可能是最简单、灵活、强大的页面蒙层组件了!》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

设计方法卡牌

设计方法卡牌

罗莎 等 / 电子工业出版社 / 2017-7 / 79.00

本套设计素材提供了54种设计方法,以卡牌的形式展示给读者,每张卡牌包括该设计方法的基本描述、目的、时间成本、工具渠道、使用阶段、操作步骤及其归类属性等信息。在做设计时,可以根据自己的需求进行卡牌的选择和组合,让设计工作更有灵活性和趣味性。同时,依据设计产品属性的不同,卡牌提供了选择设计方法的推荐模板、方法组合模板、产品阶段划分模板,给初学者在做设计时提供一定的理论依据,帮助读者启发设计灵感,剖析设......一起来看看 《设计方法卡牌》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码