Android SeekBar定制-如何正确定位定制“;拇指;形象?
我已经定制了我的SeekBar-我使用自定义图像作为背景,自定义图像作为拇指(&) 我们的想法是制作一个SeekBar,看起来像下图中的: 我希望当Android SeekBar定制-如何正确定位定制“;拇指;形象?,android,seekbar,Android,Seekbar,我已经定制了我的SeekBar-我使用自定义图像作为背景,自定义图像作为拇指(&) 我们的想法是制作一个SeekBar,看起来像下图中的: 我希望当进度值设置为0或100(满分100)时,拇指图像能够完美地融入圆形条中 为了正确定位拇指(即不与杆端重叠),我已将paddingLeft和paddingRight值设置为拇指宽度的一半() …/res/layout/main.xml: <SeekBar android:id="@+id/frequency_slider" androi
进度
值设置为0或100(满分100)时,拇指图像能够完美地融入圆形条中
为了正确定位拇指(即不与杆端重叠),我已将paddingLeft
和paddingRight
值设置为拇指宽度的一半()
…/res/layout/main.xml:
<SeekBar android:id="@+id/frequency_slider"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:max="100" android:progress="0"
android:progressDrawable="@drawable/seekbar_no_visible_progress"
android:thumb="@drawable/seekbar_thumb" <!-- this is an image -->
android:background="@drawable/hos_bar" <!-- this is an image -->
android:paddingLeft="24dp"
android:paddingRight="24dp">
</SeekBar>
android:paddingLeft=“24dp”
android:paddingRight=“24dp”>
这在Android2.1中起作用
在Android 2.2中,这会产生不同的效果:
经过进一步调查(并使用完全默认的
SeekBar
尝试此操作),我发现拇指图像的位置已从2.1更改为2.2。我更改paddingLeft
和paddingRight
的技巧不是问题所在
- 在2.1中,拇指围绕杆端居中,一半拇指在杆上,一半拇指离开杆
- 在2.2中,拇指位于条内,没有任何重叠。因此,填充值影响结果的方式很奇怪。这就是我试图实现的,但当使用自定义拇指时,这种效果不再以相同的方式工作
我想我需要创建一个自定义java类来处理这类事情。在这个问题()中,开发人员使用
ClipDrawable
来创建一个正常的进度条
为了正确定位拇指,我将使用哪种类型的可绘制对象,以及如何使用?尝试使用以下方法:
<SeekBar android:id="@+id/seek"
android:layout_width="fill_parent"
android:layout_height="73dip"
android:max="80"
android:progress="12"
android:maxWidth="273dip"
android:maxHeight="73dip"
android:secondaryProgress="255"
android:background="@drawable/image2" <!-- this is an image -->
android:progressDrawable="@drawable/image1" <!-- this is an image -->
android:thumb="@drawable/lock_thumb"
/>
android:thumb=“@drawable/lock_thumb”
/>
我已经试过了,它在2.1和2.2上运行得非常好
在你的情况下,试着像我一样调整maxWidth、max和progress,并尝试移除填充物。这可能会帮助你解决问题
这两个版本之间,thumbOffset参数的行为发生了变化。thumbOffset确定了拇指图像的实际偏移量,与提供的位置参数相比
seekbar.setThumbOffset(0);
在运行时。
不是来自XML
为我解决了这个问题。终于找到了答案,这里的情况是你必须使用
android:thumbOffset
,但是android:thumbOffset
不是进度条中拇指位置的设定器,而是拇指长度从开始到它的中心点o使seekbar
可以在拇指的起点调整拇指的中心点。因此,如果拇指图像的宽度为50,则拇指偏移量必须为25(50/2),这样seekbar
将调整拇指像素25处的零值,使拇指正好位于中间。谢谢。我已更新了我的问题。我不想要的效果仍然存在(同样在标准seekbar上)。当进度值设置为0或最大值时,我希望拇指图像能够很好地适应条的每个圆角端。