因此,我试图创建一个自定义SeekBar。在我认为自己想要的东西可以通过ProgressBar完成之前,所以当我将其用作进度条时,它可以很好地工作,我能够使用自定义可绘制对象根据需要更改颜色。当我需要合并一个“拇指”时出现了问题。

在将ProgressBar更改为SeekBar之后,seekbar会立即“缩小”并且不再适合轮廓。第一张图片显示搜寻杆不适合尺寸...


  

此图像是我要完成的工作的一个示例...
  

您可能还会注意到,我那里的白色“空白/拇指”未与正确的位置(彩色可绘制末端在此处)对齐
我怀疑这与无法解释的收缩有关吗?

注意:当我将SeekBar的padding设置为0时,视图会捕捉回正确的尺寸,但“拇指”仍会偏移,我认为这与间距有关...


这是SeekBar的XML

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/imageView1"
        android:orientation="vertical"
        android:paddingLeft="4dp"
        android:paddingRight="0dp">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >

            <SeekBar
                android:id="@+id/call_status_progress"
                android:layout_width="match_parent"
                android:layout_height="7dp"
                android:focusable="false"
                android:layout_marginTop="3dp"
                android:progressDrawable="@drawable/status_waiting_drawable"
                android:thumb="@drawable/seeker"
                android:progress="1"
                android:max="6"
                android:indeterminate="false" />
        </LinearLayout>
 ...
</LinearLayout>


这是背景可绘制的XML

<?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>
        <corners android:radius="2px" />
        <gradient
            android:startColor="#D8D8D8"
            android:centerColor="#D8D8D8"
            android:centerY="0.75"
            android:endColor="#D8D8D8"
            android:angle="270"
            />
    </shape>
</item>

<item android:id="@android:id/progress">
    <clip>
        <shape>
            <corners android:radius="2px" />
            <gradient
                android:startColor="@color/status_waiting"
                android:centerColor="@color/status_waiting"
                android:centerY="0.75"
                android:endColor="@color/status_waiting"
                android:angle="270"
                />
        </shape>
    </clip>
</item>

最佳答案

我搜索了很长时间后才找到答案,因为通常这些晦涩的错误通常被证明是简单的错误或被忽略的属性。

对我来说,我的解决方案是设置属性
android:thumbOffset

android:thumbOffset="0dp"


我希望此解决方案将来能对其他人有所帮助。

10-05 22:54
查看更多