ViewPagerIndicator设置指示点的间距
ViewPagerIndicator在github项目地址:https://github.com/JakeWharton/ViewPagerIndicator
CirclePageIndicator的一部分代码,其实CirclePageIndicator的指示点并不居中,将点的大小设置很大就可以看出来,我们可以参照radius属性,添加一个属性dotpadding,用于在布局中使用该属性设置两点之间的间距
文章图片
添加一个属性dotpadding 然后需要在CirclePageIndicator类中,声明成员变量获取该属性
文章图片
声明成员变量mDotPadding
文章图片
从布局中获取dotPadding属性值 在onDraw方法中注销掉原来的设置间距的六行代码,换上自己的绘制间距代码:
if (mDotPadding == 0) {
mDotPadding = mRadius;
}
final float threeRadius = mRadius * 2 + mDotPadding;
final float shortOffset = shortPaddingBefore + mRadius;
float longOffset = longPaddingBefore + mRadius;
if (mCentered) {
if (count > 1) {
【ViewPagerIndicator设置指示点的间距】longOffset += (longSize - longPaddingBefore - longPaddingAfter) / 2.0f - (count * 2 * mRadius + (count - 1) * mDotPadding) / 2.0f;
} else {
longOffset += (longSize - longPaddingBefore - longPaddingAfter) / 2.0f - mRadius;
}
}
文章图片
注销掉原来的设置间距的六行代码,换上自己的绘制间距代码 最后添加get和set方法,方便在代码中调用:
文章图片
添加get和set方法 然后就可以在布局和代码中直接使用了:
文章图片
在布局使用
推荐阅读
- 第6.2章(设置属性)
- 15、IDEA学习系列之其他设置(生成javadoc、缓存和索引的清理等)
- performSelectorOnMainThread:withObject:waitUntilDone:参数设置为NO或YES的区别
- spring|spring boot中设置异步请求默认使用的线程池
- Python绘制小红花
- day|day 28 设置路由表
- flutter设置沉浸式状态栏
- 谷歌/火狐/Safari浏览器设置手机模式浏览
- 自定义dialog在xml设置宽高失效的解决
- hive设置map和reduce数量