Skip to content

幸运转盘,可以控制选中指定的奖项。

Notifications You must be signed in to change notification settings

Bakumon/LuckPan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Bakumon
Nov 12, 2016
34ac127 · Nov 12, 2016

History

18 Commits
Nov 12, 2016
Nov 12, 2016
Nov 12, 2016
Nov 12, 2016
Nov 12, 2016
Nov 12, 2016
Nov 12, 2016
Nov 12, 2016
Nov 12, 2016
Nov 12, 2016
Nov 12, 2016

Repository files navigation

LuckPan

幸运转盘,可以控制选中指定的奖项。如下图,选择 ID 为 6 的奖项,在转盘停止后,选中 ID 为 6 的奖项。

demo下载

screenshot

最近项目中用到了转盘抽奖,才知道抽奖原来这么坑,转盘转动只是给用户看看而已。和点击按钮直接显示出抽奖结果的区别就是等、等、等,看着转盘揪心。

需求:

  1. 转盘上奖项的个数以及奖项的值通过调用接口确定
  2. 点击“开始抽奖”按钮,调接口成功后,停在接口返回的指定位置

API:

方法 参数 说明
setPrizeVoList(List<PrizeVo>) PrizeVo 实体集合,PrizeVo 实体包含 ID、title 等属性 (必须)设置奖项集合
setDarkColor(int) 颜色,如 Color.rgb(82, 182, 197) (非必须,有默认)设置转盘上的深色
setShallowColor(int) 颜色,如 Color.rgb(186, 226, 232) (非必须,有默认)设置转盘上的浅色色
setCircleNumRange(int, int) 转动圈数的范围,如 9~15 (非必须,有默认)设置转动圈数的范围
setOneCircleMillisRange(long, long) 每圈平均用时毫秒数的范围,如 400~600 (非必须,有默认)设置平均转动一圈用时的范围
setOnLuckPanAnimatorEndListener(listener) 转盘停止监听器 (非必须)设置转盘停止监听器
start(int) 选中奖项的 ID (必须)转盘开始转动,并停在 ID 值对应的位置上

使用

1.得到奖项数据集合

List<PrizeVo> prizeVoList = new ArrayList<>();
PrizeVo prizeVo;
for (int i = 0; i < 16; i++) {
    prizeVo = new PrizeVo();
    prizeVo.id = i + "";
    prizeVo.rate = i + "";
    prizeVo.title = "×" + i;
    prizeVoList.add(prizeVo);
}

2.转盘设置奖项数据

// 转盘设置奖项集合
mLuckPan.setPrizeVoList(prizeVoList);

3.开始转动

// 转到 ID 为 3 的奖项停止
mLuckPan.start(3);

可选:设置转动停止监听器

mLuckPan.setOnLuckPanAnimatorEndListener(new LuckPan.OnLuckPanAnimatorEndListener() {
    @Override
    public void onLuckPanAnimatorEnd(PrizeVo choicePrizeVo) {
        Toast.makeText(MainActivity.this, "选中的ID:" + choicePrizeVo.id, Toast.LENGTH_SHORT).show();
    }
});

About

幸运转盘,可以控制选中指定的奖项。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages