Android实现一个轻量的尺子(1)
主要实现一个RecylerView
的Adapter
去做一把尺子
先上地址: https://github.com/adgvcxz/RulerRecyclerView
- 超轻量
- 更多的自定义选项
- 监听刻度变化
- 简单易用,扩展性高
该Adapter主要分为3部分:尺子的左半部分,中间部分,右半部分。
每个刻度组只有一个长刻度线
Adapter:
**
* 设置刻度的数量,以及多少刻度为一个组
*/
public Builder setNumberAndGroup(int number, int groupNumber) {
mRulerAdapter.mScaleNumber = number;
mRulerAdapter.mGroupNumber = groupNumber;
mRulerAdapter.mLeftNumber = (int) (Math.ceil((float) (groupNumber - 1) / 2));
//每个刻度左半部分刻度线的数量
mRulerAdapter.mRightNumber = (int) (Math.floor((float) (groupNumber - 1) / 2));
//每个刻度右半部分刻度线的数量
mRulerSnapHelper.setLeftAndRight(mRulerAdapter.mLeftNumber, mRulerAdapter.mRightNumber);
return this;
}
@Override
public int getItemViewType(int position) {
if (position == 0) {
return LEFT_SPACING;
//左半部分
}
if (position == getItemCount() - 1) {
return RIGHT_SPACING;
//右半部分
}
return LINE;
//中间部分
}
@Override
public int getItemCount() {
if (mLeftNumber > 0) {
if (mRightNumber >= mScaleNumber) {
return 1;
//如果右半部分刻度大于所有刻度 则只有右半部分
} else {
if (mGroupNumber + mRightNumber + 1 >= mScaleNumber) {
return 2;
//如果所有刻度小于一个组的刻度数量则只有右半部分和左半部分
} else {
int number = mScaleNumber - mRightNumber - 1;
return 2 + number / mGroupNumber;
// 含有中间部分的刻度
}
}
}
return 0;
}
【Android实现一个轻量的尺子(1)】明天继续 第一次写 尼玛完全不知道怎么去表达。
推荐阅读
- 一个人的旅行,三亚
- 一个小故事,我的思考。
- android第三方框架(五)ButterKnife
- 一个人的碎碎念
- 七年之痒之后
- 我从来不做坏事
- 异地恋中,逐渐适应一个人到底意味着什么()
- 迷失的世界(二十七)
- live|live to inspire 一个普通上班族的流水账0723
- 遗憾是生活的常态,但孝顺这件事,我希望每一个人都不留遗憾