因此,我试图创建一个自定义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"
我希望此解决方案将来能对其他人有所帮助。