如何在'onCreate'方法后更改Android SeekBar的Thumb drawable?

4

目前我正在尝试更改安卓SeekBar的Thumb可绘制图像。在onCreate()方法中,我可以使用以下代码有效地更改Thumb:

mSeekBar.setThumb(myDrawable);

然而,在onCreate方法调用后,我试图使用不同的可绘制对象再次使用相同的方法进行更改,但拇指会消失。API描述为“设置将在SeekBar进度条末端绘制的拇指”,这是否意味着该图像将被绘制到屏幕外(如果我使用“fill_parent”)?我已尝试更改偏移量,但无济于事,有其他人遇到过这个问题吗?或者知道如何在进度改变时更改拇指图像吗?
我还应该提到,我正在为SeekBar设置背景可绘制对象为空的xml文件(即没有背景图像)。

目前我发现唯一的方法是再次调用onCreate()方法,以便使用setThumb()更改滑块图像。 - Nick Vallely
1个回答

4

对我而言,部分解决问题的方法是使用setBounds方法。然而,我遇到的问题是,它会重置滑块图像的位置回到线条的起始点。我不知道这是否与我的代码实现方式有关,或者无论如何实现都会出现这种情况。

Drawable myThumb = getResources().getDrawable(R.drawable.slider_button);
myThumb.setBounds(new Rect(0, 0, myThumb.getIntrinsicWidth(),myThumb.getIntrinsicHeight()));
skbr.setThumb(myThumb);

谢谢,这帮了很多! - user754730

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接