SeekBar
SeekBar
SeekBar 基本用法
seekbar 设置进度条颜色
- xml 设置 seekbar 的进度条颜色
android:progressDrawable="@drawable/bg_adjust_seek_bar"
- 代码
1
seekBar.getProgressDrawable().setColorFilter(Color.WHITE, Mode.SRC_ATOP);//设置进度条颜色、样式
同一种颜色的进度条 bg_adjust_seek_bar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@android:id/background"
android:paddingBottom="4dp"
android:paddingTop="4dp">
<shape>
<corners android:radius="50dp"/>
<solid android:color="#efefef"/>
</shape>
</item>
<item
android:id="@android:id/progress"
android:paddingBottom="4dp"
android:paddingTop="4dp">
<clip>
<shape>
<corners android:radius="50dp"/>
<gradient
android:angle="0"
android:endColor="#2896F0"
android:startColor="#2896F0"/>
</shape>
</clip>
</item>
</layer-list>
实现颜色渐变的进度条
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@android:id/background"
android:paddingBottom="4dp"
android:paddingTop="4dp">
<shape>
<corners android:radius="50dp"/>
<solid android:color="#999999"/>
</shape>
</item>
<item
android:id="@android:id/progress"
android:paddingBottom="4dp"
android:paddingTop="4dp">
<clip>
<shape>
<corners android:radius="50dp"/>
<gradient
android:angle="0"
android:endColor="#C166D1"
android:startColor="#2896F0"/>
</shape>
</clip>
</item>
</layer-list>
背景、第二进度、进度
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape>
<corners android:radius="5dip" />
<gradient
android:startColor="@color/gray_cc"
android:centerColor="@color/gray_cc"
android:centerY="0.75"
android:endColor="@color/gray_cc"
android:angle="270"/>
</shape>
</item>
< !-- 我的没有第二背景,故第二背景图没有画 -->
<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
<corners android:radius="5dip" />
<gradient
android:startColor="#80ffd300"
android:centerColor="#80ffb600"
android:centerY="0.75"
android:endColor="#a0ffcb00"
android:angle="270"/>
</shape>
</clip>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<corners android:radius="5dip" />
<gradient
android:startColor="@color/gray_cc"
android:centerColor="@color/gray_cc"
android:centerY="0.75"
android:endColor="@color/gray_cc"
android:angle="270"/>
</shape>
</clip>
</item>
</layer-list>
seekbar 的滑块按钮图片
- xml
android:thumb="@drawable/bg_seek_bar_thumb2"
- 代码
1
seekBar.getThumb().setColorFilter(Color.GRAY, Mode.SRC_ATOP);//设置滑块颜色、样式
提醒下滑块滑到 0 或者最大可能展示不完,滑块只展示一半;还有有的背景太高;所以这些需要设置一下即可:
1
2
3
4
android:maxHeight="5dp"
android:minHeight="5dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
上面 maxHeight 与 minHeight 可以让背景不那么高,更改值可以控制高度。
paddingLeft 与 paddingRight 最好是滑块的宽度一半,这样即可展示完全。
SeekBar 粗细
minHeight
和 maxHeight
来控制 progress 的粗细
layout_height 要设置 wrap_content 这样才能显示完成的图标
本文由作者按照 CC BY 4.0 进行授权