首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >学习|Android超漂亮的引导框架TagTarget的使用

学习|Android超漂亮的引导框架TagTarget的使用

作者头像
Vaccae
发布2020-02-17 11:45:55
发布2020-02-17 11:45:55
98000
代码可运行
举报
文章被收录于专栏:微卡智享微卡智享
运行总次数:0
代码可运行

武汉加油,中国加油

今天是很多公司上班的第一天,不过由于疫情的影响,我们现在还是选择了在家办公,当然更新也应该开始了,这一篇是年前就写好的文章,算是存货了,过年期间大部分时间还是呆在家里的,最近也是在研究NanoMsg,所以下面的几篇会是NanoMsg相关的东西,等这个系列完成后,我就开始要研究一下微信小程序的相关东西。开始前还是希望这次的疫情尽快过去,武汉加油,中国加油!

学更好的别人,

做更好的自己。

——《微卡智享》

本文长度为2370,预计阅读6分钟

TagTarget框架

最近一直在研究一些Android的开源框架,想用的几个差不多也已经会了,就随便搜了搜有没有比较喜欢的,也是无意间看到了这个引导框架,然后做了做Demo,感觉效果超好,是一个很不错的引导框架,在程序内部做使用说明非常适合。

实现效果

核心方法

微卡智享

TagTarget实现在也是流式的代码风格,可以一行代码直接实现我们想要的效果

代码语言:javascript
代码运行次数:0
运行
复制
TapTargetView.showFor(activity,
    TapTarget.forView(view,title,desc))

showFor后面填入当前打开的activity,在forView中第一个参数就是我们的组件,第二个参数输入标题,第三个参数输入说明。

扩展方法

代码语言:javascript
代码运行次数:0
运行
复制
private fun tvshowTapTarget() {
        TapTargetView.showFor(
            this, //当前的activity
            TapTarget.forView(tvshow, "这里输入标题", "这里输入说明")
                //外圈圆的颜色
                .outerCircleColor(R.color.colorDefBlue)
                    //外圈圆的透明度
                .outerCircleAlpha(0.9f)
                    //当前设置控件的圆的颜色
                .targetCircleColor(R.color.colorTransBlue)
                    //标题字体大小
                .titleTextSize(20)
                    //说明字体大小
                .descriptionTextSize(12)
                    //字体颜色
                .textColor(R.color.colorBlack)
                .textTypeface(Typeface.SANS_SERIF)
                    //阴影色
                .dimColor(R.color.colorWhite)
                    //选中目标的半径范围
                .targetRadius(70),
                    //点击目标的事件
            object : TapTargetView.Listener() {
                override fun onTargetClick(view: TapTargetView?) {
                    super.onTargetClick(view)
                    Toast.makeText(this@MainActivity, "我是弹窗", Toast.LENGTH_SHORT).show()
                }
            }
        )
    }

扩展方法中多了很多设置,比如标题或说明的字体,颜色等,还可以写入点击的事件方法,更多的扩展方法可以看一下TagTargetView的gitHub的地址:https://github.com/KeepSafe/TapTargetView.git

实现效果

下图是简单实现和扩展实现的一个对比效果

组合使用

TagTargetView除了上面简单的使用方法,还可以像我们初次进入软件的引导组合使用的方法,这里就用到了TapTargetSequence

代码语言:javascript
代码运行次数:0
运行
复制
private fun SequencesTap(){
        val sequence= TapTargetSequence(this)
            .targets(TapTarget.forView(tvshow,"左上角标题"),
                TapTarget.forView(btn1,"btn1的说明","我来做说明")
                    .drawShadow(true).tintTarget(false)
                    .icon(drawable),
            TapTarget.forView(edttext,"我是文本框","我来做文本框说明"),
                TapTarget.forBounds(Rect(100,100,100,200),"我是一个矩 形")
                    .cancelable(false))
            .listener(object : TapTargetSequence.Listener{
                override fun onSequenceCanceled(lastTarget: TapTarget?) {
                    Toast.makeText(this@MainActivity,"canceled",Toast.LENGTH_SHORT).show()
                }

                override fun onSequenceFinish() {
                    Toast.makeText(this@MainActivity,"finish",Toast.LENGTH_SHORT).show()
                }

                override fun onSequenceStep(lastTarget: TapTarget?, targetClicked: Boolean) {
                    Toast.makeText(this@MainActivity,"targetclicked:"+targetClicked.toString()+" lasttarget:"+ lastTarget?.let{ it.id()},Toast.LENGTH_SHORT).show()
                }
            })
        sequence.start()
    }

最后创建好TapTargetSequence,需要使用start()的方法进行执行。

实现效果

小提示

在kotlin中可以不用再进行findviewbyid的方法实现了,只需要在代码文件中加入一句import kotlinx.android.synthetic.main.activity_main.*,即可实现代码中直接使用组件的id调用。

本项目中我们加入了

代码语言:javascript
代码运行次数:0
运行
复制
import kotlinx.android.synthetic.main.activity_main.*

没有用到findviewbyid就代码中直接可以使用tvshow即可。

源码地址

https://github.com/Vaccae/TagTargetViewDemo.git

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微卡智享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档