android 带刻度线的水平滚动条
时间: 2023-09-02 13:12:36 浏览: 103
android 水平滚动条
4星 · 用户满意度95%
Android 中可以使用 SeekBar 控件来实现带刻度线的水平滚动条。具体实现步骤如下:
1. 在布局文件中添加 SeekBar 控件:
```xml
<SeekBar
android:id="@+id/seekbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="100"
android:progress="50"
android:progressDrawable="@drawable/seekbar_progress"
android:thumb="@drawable/seekbar_thumb" />
```
其中 `android:max` 属性设置最大值,`android:progress` 属性设置当前进度,`android:progressDrawable` 属性设置进度条背景,`android:thumb` 属性设置进度条拖动按钮。
2. 创建进度条背景和拖动按钮的 drawable 文件。
在 res/drawable 目录下创建 seekbar_progress.xml 和 seekbar_thumb.xml 文件分别实现进度条背景和拖动按钮样式。
seekbar_progress.xml 文件内容如下:
```xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape>
<corners android:radius="5dp" />
<solid android:color="#E0E0E0" />
</shape>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<corners android:radius="5dp" />
<solid android:color="#FF4081" />
</shape>
</clip>
</item>
</layer-list>
```
seekbar_thumb.xml 文件内容如下:
```xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<size android:width="24dp"
android:height="24dp" />
<solid android:color="#FF4081" />
</shape>
```
3. 在 Java 代码中设置刻度线。
```java
SeekBar seekBar = findViewById(R.id.seekbar);
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
// 刻度线的位置可以根据 progress 值计算得出
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
```
在 `onProgressChanged` 方法中可以根据 `progress` 的值计算出刻度线的位置,然后自己实现刻度线的绘制即可。
以上就是实现带刻度线的水平滚动条的全部步骤。
阅读全文