实现聚光灯效果的用户引导:Spotlight

Spotlight

这是一个用来实现聚光灯效果,可用于用户引导或功能的提示的Android 工具库

alt text

Gradle

dependencies {
compile 'com.github.takusemba:spotlight:1.1.1'
}

使用方法


Spotlight.with(this) .setDuration(1000L) // 持续时间 .setAnimation(new DecelerateInterpolator(2f)) // Spotlight动画 .setTargets(firstTarget, secondTarget, thirdTarget ...) // 设置目标 .setOnSpotlightStartedListener(new OnSpotlightStartedListener() { // 开始的回调 @Override public void onStarted() { Toast.makeText(context, "spotlight is started", Toast.LENGTH_SHORT).show(); } }) .setOnSpotlightEndedListener(new OnSpotlightEndedListener() { // Spotlight显示完成后的回调 @Override public void onEnded() { Toast.makeText(context, "spotlight is ended", Toast.LENGTH_SHORT).show(); } }) .start(); // 开始 Spotlight

如果你想要立即显示Spotlight , 使用addOnGlobalLayoutListener 后直等到绘制视图。

view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override public void onGlobalLayout() {
view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
Spotlight.with(this)...start();
}
});

 

简单目标

只需简单的设置标题和描述,显示位置会自动计算。


SimpleTarget simpleTarget = new SimpleTarget.Builder(this) .setPoint(100f, 340f) // 目标位置,可选择 setPoint(Point point)或 setPoint(View view) 使用。 .setRadius(80f) // 目标半径 .setTitle("the title") // 标题 .setDescription("the description") // 描述 .setOnSpotlightStartedListener(new OnTargetStateChangedListener() { @Override public void onStarted(SimpleTarget target) { // 搞事情 } @Override public void onEnded(SimpleTarget target) { // 搞事情 } }) .build();

 

自定义目标

使用你的自定义视图


CustomTarget customTarget = new CustomTarget.Builder(this) .setPoint(100f, 340f) // 目标位置,可选择 setPoint(Point point)或 setPoint(View view) 使用。 .setRadius(80f) // 目标半径 .setView(R.layout.layout_target) // 自定义视图 .setOnSpotlightStartedListener(new OnTargetStateChangedListener() { @Override public void onStarted(CustomTarget target) { // 搞事情 } @Override public void onEnded(CustomTarget target) { // 搞事情 } }) .build();

 

示例

克隆这个repo 查看app 模块.

更新日志

Version: 1.0.3

  • 给目标添加监听器

Version: 1.0.1, 1.0.2

  • 修改常规性Bug

Version: 1.0.0

  • 初始构建

关于作者

  • Taku Semba
  • Github – (https://github.com/takusemba)
  • 推特 – (https://twitter.com/takusemba)
  • 脸书 – (https://www.facebook.com/takusemba)
1 喜欢
0 不喜欢