gpt4 book ai didi

Android ProgressBar.setProgressDrawable 只能工作一次吗?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:31:11 27 4
gpt4 key购买 nike

在颜色选择器中,我有 3 个用于色相、饱和度和值的 SeekBar。在这些 SeekBars 上调用 setProgressDrawable 只工作一次——在 onCreate 初始化时。当用户更新 Hue SeekBar 时,我想为 Saturation 和 Value SeekBars 调用 setProgressDrawable,以向用户显示他们对新 Hue 的颜色选择。

但所有对 setProgressDrawable 的调用(在 onCreate 的初始调用之后)都会导致 SeekBar 变为空白。

如何根据用户输入更新 SeekBar 的背景渐变?

最佳答案

我发现调用 setprogressdrawable 时,drawable 并不知道它的大小。最初设置时,它确实知道自己的大小。这意味着有一个新的 drawable 设置到 seekbar,但 drawable 的大小为 0,您将看不到任何东西。

解决方法是先获取当前drawable的bounds,然后设置新的drawable,最后再设置bounds:

Rect bounds = mySeekBar.getProgressDrawable().getBounds();
mySeekBar.setProgressDrawable(newSeekBarBackground);
mySeekBar.getProgressDrawable().setBounds(bounds);

关于Android ProgressBar.setProgressDrawable 只能工作一次吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2805866/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com