定制性较高的横向滑动的卷尺
ScaleView具有较高的可定制性,宽高支持match_parent, wrap_content以及具体值.
<cf.sadhu.ScaleView
android:id="@+id/sacleview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@color/color_background"
app:decimalFormat="0.0"
app:graduationLineColor="@color/white"
app:graduationLineHeight="38dp"
app:graduationLineMargin="10dp"
app:graduationLineWidth="4dp"
app:graduationStep="0.01"
app:graduationStepHelper="100"
app:graduationTextColor="@color/white"
app:graduationTextMargin="12dp"
app:graduationTextSize="17sp"
app:indicator="@drawable/bg_indicator"
app:initialValue="100.9"
app:maxVaule="230.1"
app:minValue="100"/>
下图是上面xml展示的样式
下表是所有属性及其含义
| Attribute | Type | Summary |
|---|---|---|
| minValue | float | 卷尺的最小值 |
| maxVaule | float | 卷尺的最大值 |
| initialValue | float | 卷尺的初始值,默认为最小,最大值间的中位数 |
| indicator | reference | 指示器drawable,xml中的shape如果没有指定宽高,indicator的宽高则与长刻度线的宽高相同 |
| graduationStep | float | 刻度尺的最小刻度,默认是1 |
| graduationStepHelper | integer | 将最小刻度变为整数需要乘的数,默认是1 |
| graduationLineMargin | dimension | 刻度间的间距 |
| graduationTextColor | color | 刻度值文字的颜色 |
| graduationTextSize | dimension | 刻度值文字的大小 |
| graduationTextMargin | dimension | 刻度值文字距离长刻度线的间距 |
| graduationLineColor | color | 长刻度线的颜色 |
| graduationLineWidth | dimension | 长刻度线的宽,短刻度线为长刻度线的一半 |
| graduationLineHeight | dimension | 长刻度线的高,短刻度线为长刻度线的一半 |
| decimalFormat | dimension | 刻度值文字的格式,可参考java中的DecimalFormat类,默认值是"0" |
下表是公开方法及其含义
| Method | Summary |
|---|---|
| setIndicatorDrawable(Drawable indicatorDrawable) | 设置指示器drawable |
| initialData(float minValue, float maxValue, float step, int stepHelper,float initialValue) | 设置卷尺的最小/最大值,初始值,刻度值,以及stepHelper |
| initialData(float minValue, float maxValue, float step, int stepHelper) | 设置卷尺的最小/最大值,刻度值,以及stepHelper,初始值默认为最小/最大值的中位数 |
| setOnGraduationValueChange(OnGraduationValueChangeListener listener) | 设置刻度值选中时候的回调 |

