// English Ver(ps:请别对我的英文有多大信心)
jcenter license Android Arsenal Api Author
开发进度 (更新日志->日志):
如果您有别的需求,可以提交您的issue哦,当然,也可以直接修改源码-V- -
(削除) 允许alpha突出选中的甜甜圈 (削除ここまで)-
(削除) 允许甜甜圈之间含有间隔 (削除ここまで)(削除) 文字自适应点击动画位置 (削除ここまで)(削除) 文字描述动画 (削除ここまで)(削除) 有文字描述的甜甜圈 (削除ここまで)(削除) 点击事件回调的甜甜圈 (削除ここまで)(削除) 点击动画的甜甜圈 (削除ここまで)(削除) 可以点击的甜甜圈 (削除ここまで)(削除) 可以变成大饼的甜甜圈 (削除ここまで)(削除) 动画长大的甜甜圈 (削除ここまで)
| 描述 | 方法 | 预览 |
|---|---|---|
| 动画生长 | -- | pie_animation |
| 饼图/甜甜圈转换 | setDrawStrokeOnly(boolean) | pie_switch |
| 角度间隙 | setSplitAngle(float) | pie_split_angle |
| 绘制文字 | setDrawText(true) | pie_with_text |
| 点击效果 | setCanTouch(true) / setOnPieSelectListener() | pie_click_effect |
| 焦点甜甜圈效果 (反向) | setFocusAlphaType( AnimatedPieViewConfig.FOCUS_WITH_ALPHA_REV,150 ) |
pie_click_with_focus_alpha_type_rev |
| 焦点甜甜圈效果 | setFocusAlphaType( AnimatedPieViewConfig.FOCUS_WITH_ALPHA,150 ) |
pie_click_with_focus_alpha_type |
添加依赖(请把{latestVersion}替换成上面的jcenter标签所示版本)
dependencies {
compile 'com.github.razerdp:AnimatedPieView:{latestVersion}'
}AnimatedPieView mAnimatedPieView = findViewById(R.id.animatedPieView); AnimatedPieViewConfig config = new AnimatedPieViewConfig(); config.setStartAngle(-90)// 起始角度偏移 .addData(new SimplePieInfo(30, getColor("FFC5FF8C"), "这是第一段"))//数据(实现IPieInfo接口的bean) .addData(new SimplePieInfo(18.0f, getColor("FFFFD28C"), "这是第二段")) ...(尽管addData吧) .setDuration(2000)// 持续时间 mAnimatedPieView.applyConfig(config); mAnimatedPieView.start();
AnimatedPieViewConfig mConfig=mAnimatedPieView.getConfig(); mConfig.setTouchAnimation(true)// 点击事件是否播放浮现动画/回退动画(默认true) .addData(IPieInfo info, boolean autoDesc)// 添加数据,autoDesc:是否自动补充描述?(百分比) .setTouchExpandAngle(15f)// 点击后圆弧/扇形扩展的角度 .setTouchShadowRadius(18f)// 点击后的阴影扩散范围 .setTouchScaleUpDuration(500)// 点击浮现动画时间 .setTouchScaleDownDuration(500)// 上一个浮现的圆弧回退的动画时间 .setTouchScaleSize(15)// 点击后扇形放大数值,,只对饼图有效 .setDrawStrokeOnly(true)// 是否只画圆弧【甜甜圈哈哈】,否则画扇形(默认true) .setStrokeWidth(15)// 圆弧(甜甜圈)宽度 .setDuration(2500)// 动画时间 .setStartAngle(-90f)// 开始的角度 .setOnPieSelectListener(new OnPieSelectListener<IPieInfo>())//点击事件 .setDrawText(true)// 是否绘制文字描述 .setTextSize(12)// 绘制的文字大小 .getTextMarginLine(8)// 绘制文字与描述线的距离 .setPieRadiusScale(0.8f)// 甜甜圈半径占比 .setTextPointRadius(2)// 设置描述文字的开始小点的大小 .setTextLineStrokeWidth(4)// 设置描述文字的指示线宽度 .setTextLineTransitionLength(8)// 设置描述文字的指示线折角处长度 .setTextLineStartMargin(8)// 设置描述文字的指示线开始距离外圆半径的大小 .setDirectText(true)// 设置描述文字是否统一方向 【 -true:文字将会在描述线上绘制 -false:文字在1、2象限部分绘制在线的上方,在3、4象限绘制在线的下方 】 .setCanTouch(true)// 是否允许甜甜圈点击放大 .setSplitAngle(1)// 甜甜圈间隙角度 .setFocusAlphaType(AnimatedPieViewConfig.FOCUS_WITH_ALPHA_REV,150)// 焦点甜甜圈的alpha表现形态及alpha削减值 .setStrokePaintCap(Paint.Cap.ROUND)// 笔刷的样式 .setConfig(new AnimatedPieViewConfig());// 配置(这里的new只是演示哦,可不要学我例子这里直接塞进一个新的config,否则上面的设置都浪费了)
Apache-2.0