项目地址:
简介:
🌟适用于Android的刻度尺(标尺)控件。🔥高度自定义🔥内存占用低,纯绘制,不使用动画。
目录:
1.使用方式
使用方式一:Maven方式:
Step 1. 在 project 层级的 build.gradle 中,添加仓库地址:
allprojects {
repositories {
...
jcenter()
}
}
Step 2. 在主 module 的 build.gradle 中添加依赖:
- 最新版本
implementation 'com.chiului.library:scaleview:1.1.1'
使用方式二:Module 方式
Step 1. 下载源码
Step 2. 引入 Module
File --> New --> import Module
Step 3. 在主 Module 中添加 Module 依赖
implementation project(path: ':scaleview')
2.使用示例
示例1 | 示例2 | 示例3 | 示例4 |
---|---|---|---|
2.1仅改变各种颜色样式:
<com.chiului.ScaleView
android:id="@+id/scaleView"
android:layout_width="match_parent"�
android:layout_height="100dp"
app:pointer_color="#03DAC5"
app:num_color="#6200EE"
app:low_scale_color="#DEB8B1"
app:middle_scale_color="#3379F6"
app:high_scale_color="#EA4335"
app:baseLine_color="#3700B3"/>
2.2某项目内样式:
<com.chiului.ScaleView
android:id="@+id/scaleView"
android:layout_width="match_parent"
android:layout_height="100dp"
app:min_index="0"
app:max_index="300"
app:now_index="50"
app:show_pointer_head="false"
app:scale_position="top"
app:pointer_margin_top="30"
app:font_top="false"
app:show_baseLine="false"
app:pointer_top_protruding="
app:low_scale_width="3"
app:middle_scale_width="3"
app:high_scale_width="3"
app:pointer_width="3"
app:low_pointer_margin="150"
app:middle_pointer_margin="100"
app:high_pointer_margin="50" />
2.3显示负数、向下视图、隐藏底线样式:
<com.chiului.ScaleView
android:id="@+id/scaleView"
android:layout_width="match_parent"
android:layout_height="150dp"
app:min_index="-100"
app:max_index="100"
app:now_index="0"
app:show_baseLine="false"
app:pointer_top="false"
app:scale_position="center"
app:font_top="false"
app:pointer_margin_top="0"
app:pointer_color="#03DAC5"
app:num_color="#6200EE"
app:low_scale_color="#DEB8B1"
app:middle_scale_color="#3379F6"
app:high_scale_color="#EA4335"/>
2.4显示整数、居中视图、隐藏指针头样式:
<com.chiului.ScaleView
android:id="@+id/scaleView"
android:layout_width="match_parent"
android:layout_height="150dp"
app:min_index="-100"
app:max_index="100"
app:now_index="0"
app:show_baseLine="false"
app:scale_position="center"
app:scale_ratio="1"
app:baseLine_margin_bottom="0"
app:show_pointer_head="false"
app:pointer_color="#03DAC5"
app:num_color="#6200EE"
app:low_scale_color="#DEB8B1"
app:middle_scale_color="#3379F6"
app:high_scale_color="#EA4335"/>
3.自定义属性
属性 | 作用 | 默认值 |
---|---|---|
name="min_index" format="integer" | 最小刻度 | 0 |
name="max_index" format="integer" | 最大刻度 | 100 |
name="now_index" format="integer" | 当前刻度 | 50 |
name="scale_value" format="integer" | 每格刻度的值 | 1 |
name="text_size" format="float" | 刻度数值的字体大小 | 50f |
name="pointer_width" format="float" | 指针线宽度 | 3f |
name="pointer_head" format="float" | 指针头宽度 | 30 |
name="pointer_top" format="boolean" | 指针是否向上 | true |
name="pointer_top_protruding" format="boolean" | 指针是否向上突出 | false |
name="pointer_bottom_protruding" format="boolean" | 指针是否向下突出(相对于刻度线来说,如下对齐情况中,指针线下面要长于刻度线) | false |
name="show_pointer_head" format="boolean" | 是否显示针头 | true |
name="baseLine_width" format="float" | 底线线宽度 | 5f |
name="low_scale_width" format="float" | 低刻度线宽度 | 1f |
name="middle_scale_width" format="float" | 中刻度线宽度 | 2f |
name="high_scale_width" format="float" | 高刻度线宽度 | 3f |
name="line_interval" format="integer" | 刻度与刻度之间的距离 | 30 |
name="baseLine_margin_bottom" format="integer" | 所有元素(除了文字)与 View 底的距离(下边距为文字留位置) | 50 |
name="pointer_margin_top" format="integer" | 所有元素(除了文字)与 View 顶的距离(上边距为文字留位置) | 50 |
name="left_margin_left" format="integer" | 所有元素(除了文字)与 View 左边的距离 | 0 |
name="right_margin_right" format="integer" | 所有元素(除了文字)与 View 右边的距离 | 0 |
name="font_margin_bottom" format="integer" | 文字下边距(避免显示不全) | 0 |
name="font_margin_top" format="integer" | 文字上边距(避免显示不全) | 40 |
name="low_pointer_margin" format="integer" | 低刻度的边距(控制长度) | 150 |
name="middle_pointer_margin" format="integer" | 中刻度的边距(控制长度) | 100 |
name="high_pointer_margin" format="integer" | 高刻度的边距(控制长度) | 50 |
name="middle_frequency" format="integer" | 中刻度线频率 | 5 |
name="high_frequency" format="integer" | 高刻度线频率 | 10 |
name="baseLine_color" format="color" | 底线颜色 | #C7C7C7 |
name="high_scale_color" format="color" | 高刻度线颜色 | #C7C7C7 |
name="middle_scale_color" format="color" | 中刻度线颜色 | #C7C7C7 |
name="low_scale_color" format="color" | 低刻度线颜色 | #C7C7C7 |
name="num_color" format="color" | 刻度数值颜色 | #01C5C6 |
name="pointer_color" format="color" | 指针颜色 | #FF8282 |
name="font_top" format="boolean" | 字体是否要绘制在上面 | true |
name="scale_ratio" format="float" | 显示的刻度数字与刻度比例(比如要显示小数的情况, 显示整数则设为 1):刻度 / 比例 = 显示刻度 | 10 |
name="sliding_ratio" format="float" | 滑动距离比例(用于调整滑动速度):刻度间距离 * 滑动速度比例 = 每滑动多少距离改变状态 | 0.5 |
name="show_baseLine" format="boolean" | 是否显示底线 | true |
name="units" format="float" | 惯性滑动速率时间单位, 多少毫秒时间单位内运动了多少个像素 | 500 |
name="max_velocity" format="float" | 最大滑动数率 | 15000 |
name="strokeCap" format="enum" | Paint 的线帽: BUTT:无线帽,ROUND:圆角, SQUARE:矩形 | SQUARE |
name="scale_position" format="enum" | 刻度线对齐:top:上对齐,center:居中对齐,bottom:下对齐 | bottom |
4.方法
方法 | 作用 |
---|---|
setNowIndex(double) | 设置刻度 |
setPlusScale() | 加刻度 |
setMinusScale() | 减刻度 |
setMaxIndex(double) | 设置最小刻度范围 |
setMaxIndex(double) | 设置最大刻度范围 |
5.监听
监听 | 作用 |
---|---|
setOnScaleChangeListener(OnScaleChangeListener) | 设置改变刻度回调监听 |