Android Studio中自定义SeekBar时滑块与进度条错位

Android Studio中可以使用SeekBar来制作进度条,还可以实现通过自定义的方式来实现各种各样的进度条,但是有时候自定义的进度条时会出现滑块与进度条错位的情况,今天和大家分享一下我自己自定一进度条时出现滑块与进度条错位的解决办法。

这是两个进度条实现的,使用了两张图片来作为滑块,然后再加上自定义的进度条,这里就和大家分享一下进度条与滑块错位的解决办法,至于自定义进度条的话大家可以自己找一下。

最终实现效果图如下

在这里插入图片描述

进度条与滑块错位图片

在这里插入图片描述

滑块与进度条错位代码实现如下

  <SeekBar
        android:id="@+id/seekbar1"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:layout_below="@+id/text22"
        android:layout_marginLeft="18dp"
        android:layout_marginTop="10dp"
        android:layout_toRightOf="@+id/armupbutton1"
        android:progress="90"
        android:progressDrawable="@drawable/seekbar1"
        android:thumb="@drawable/seekbar1_select"

        ></SeekBar>

    <SeekBar
        android:id="@+id/seekbar2"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/seekbar1"
        android:layout_toRightOf="@+id/seekbar1"
        android:progress="10"
        android:progressDrawable="@drawable/seekbar2" 
        android:thumb="@drawable/seekbar2_select"
        ></SeekBar>

最终完整实现代码如下

解决办法再代码中有对应的注释,大家自己看一下代码

 <SeekBar
        android:id="@+id/seekbar1"
        android:layout_width="150dp"
        /**
        控件的宽度设置为特定的高度,而不是使用Wrap_content
        */
        android:layout_height="50dp"
        android:layout_below="@+id/text22"
        android:layout_marginLeft="18dp"
        android:layout_marginTop="10dp"
        android:layout_toRightOf="@+id/armupbutton1"
        android:progress="90"
        android:progressDrawable="@drawable/seekbar1"
        android:thumb="@drawable/seekbar1_select"
        /**
        然后再使用padding来调整,最终实现进度条与滑块重合
        **/
        android:padding="24dp"
        ></SeekBar>

    <SeekBar
        android:id="@+id/seekbar2"
        android:layout_width="150dp"
         /**
        控件的宽度设置为特定的高度,而不是使用Wrap_content
        */
        android:layout_height="50dp"
        android:layout_alignTop="@+id/seekbar1"
        android:layout_toRightOf="@+id/seekbar1"
        android:progress="10"
        android:progressDrawable="@drawable/seekbar2"
        android:thumb="@drawable/seekbar2_select"
           /**
        控件的宽度设置为特定的高度,而不是使用Wrap_content
        */
        android:padding="24dp"
        ></SeekBar>

好了,到这里就结束了,大佬勿喷,我也是自己尝试着弄出来的,可能这并不是最好的解决办法。

猜你喜欢

转载自blog.csdn.net/weixin_44223883/article/details/104747325
今日推荐