gpt4 book ai didi

具有非常精细控制的Android SeekBar

转载 作者:行者123 更新时间:2023-11-30 03:28:15 28 4
gpt4 key购买 nike

我想在我的 Android 应用程序中设置一个 slider ,但要有很好的控制。我有以下代码来定义 bar 及其范围:

skBar = new SeekBar (this);
skBar.setBackgroundColor (TRANS_BLUE);
skBar.setMax (2000);
skBar.setMinimumHeight (20);
skBar.setProgress (origOffset);

我正在以编程方式设置栏,因为我需要应用程序在用户调整它时继续工作,但我真的不认为这是问题所在。问题是 slider 似乎以至少 10 的增量移动。显然,我很可能会遇到硬件限制(我使用的是 Nexus 7),但我不确定。是否需要添加一些内容来解决细粒度问题?

最佳答案

我可以看到导致此问题的两个原因之一。

  • 如果您的 SeekBar 宽度相对于您的 max 值太小。例如,如果您的搜索栏只有 500 像素宽,最大值为 2000,则您可以获得的绝对最小值变化为 2000/500 = 4。这是一个 1 像素的移动。但是,由于以下原因,您可能无法获得一个像素的移动。

  • 即使使用大型 SeekBar,您也会遇到触摸溢出问题。为了防止系统被触摸事件淹没,有一个阈值。如果 Action 太小,系统会直接将其丢弃。此值因设备而异,因此我无法告诉您它在 Nexus 7 上是什么。我个人见过小至 4 大至 12 的值。

要弄清楚你的触摸斜率是多少,你可以使用 ViewConfiguration#getScaledTouchSlop() ,您可以在 this fine answer 中阅读更多相关信息。 .

因此,假设平均触摸倾斜度为 8,即使有 1200 像素的相当大的 SeekBar(以及您的原始最大值 2000),您应该得到最小值变化:(2000/1200) * 8 = 13.333...


要解决触摸问题,您无能为力,但如果您愿意向搜索栏添加前进/下一个控件,您可以使用所需的任何增量自行更新进度。这有利于精细控制,而触摸运动则适合粗略。

关于具有非常精细控制的Android SeekBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17891438/

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