SeekBar: Seekbar中的一些细节要点

1. 修改SeekBar中进度条的高度

android:maxHeight和android:minHeight 。前者是用来指定进度条最大高度的(此高度并非SeekBar整个控件的高度),后者是用来指定最小高度,一般将这两个属性值设置成一致即可。

2. 滑块和背景之间有截断的问题

android:thumbOffset。通常设置thumb后,滑动图片会被隐藏一部分。设置thumbOffset就可以解决该问题:android:thumbOffset="0dp", 该现象在5.0上居多。

3. 滑块四周不透明

android:splitTrack="false"。有时候发现UI给的滑块图片四周是透明的,但是放上去之后发现四周是不透明的,这是因为“The Material seek bar has split track enabled by default”。

4. 默认Seekbar左右两边有一定距离的padding

android:paddingStart="0dp"
android:paddingLeft="0dp"
android:paddingEnd="0dp"
android:paddingRight="0dp"

在XML文件里将其padding都设置为0。

5. 默认拖拽滑块时四周会出现阴影

android:duplicateParentState="true"。若不需要该效果,可指定该属性。

附:自定义Seekbar完整定义:

进度条

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 背景 -->
    <item android:id="@android:id/background">
        <shape android:shape="rectangle">
            <solid android:color="#ACACAC" />
            <corners android:radius="2dp" />
        </shape>
    </item>

    <!-- 进度 -->
    <item android:id="@android:id/progress">
        <clip>
            <shape android:shape="rectangle">
                <solid android:color="#2382F7" />
                <corners android:radius="2dp" />
            </shape>
        </clip>
    </item>
</layer-list>

滑块

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <solid android:color="#FFFFFF" />
    <stroke
        android:width="1dp"
        android:color="#BBBBBB" />
    <size
        android:width="26dp"
        android:height="26dp" />
</shape>

XML:

<SeekBar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="20dp"
        android:layout_marginTop="20dp"
        android:layout_marginEnd="20dp"
        android:max="100"
        android:maxHeight="2dp"
        android:minHeight="2dp"
        android:progress="0"
        android:progressDrawable="@drawable/app_vivo_seek_bar_bg"
        android:thumb="@drawable/app_vivo_seek_bar_thumb"
        android:progress="40" />

效果:

 

参考链接:

1. Android 仿vivo的SeekBar样式

2. android seekbar 踩坑之路

 

posted @ 2018-09-26 14:22  夜行过客  阅读(4832)  评论(0编辑  收藏  举报