【问题标题】:How to set SeekBar progress with a long integer? (or alternatives)如何使用长整数设置 SeekBar 进度? (或替代品)
【发布时间】:2019-12-17 10:27:10
【问题描述】:

我需要一些有关 Android 应用的帮助。我想使用 SeekBars 设置某个值,但该值应该可以很长(因为我需要这么高的数字)。是否有好的自定义 SeekBars 可以导入? (GitHub链接会很棒)

据我所知,普通的 SeekBar 仅支持普通整数,并且无法强制转换为 int。

【问题讨论】:

  • 以屏幕宽度作为搜索栏长度的限制 - 如果显示 SeekBar 的像素比可能的值少得多,作为用户我将如何设法找到特定位置?跨度>
  • 如果你会增加每像素跳跃的值。因此,例如,您将 SeekBar 移动 1 个像素,该值将更改 100。
  • 您可以将值除以 const 并转换为整数并显示它乘以 const

标签: java android integer long-integer seekbar


【解决方案1】:

您可以改用百分比公式。

  • 将 SeekBar 的最大值设置为 100,
  • 当前位置等于(int)current_long/total_long * 100

【讨论】:

  • 那不行,因为百分比是整数。
  • 它确实可以正常工作,因为值被转换为整数,如果您对转换有疑问,您可以 Integer.parseInt(current_long/total_long * 100) @jairhumberto
  • 这不是强制转换的问题,而是从 0 到 100 的范围应该是 double 以准确处理涉及 long 的情况。前任。一个从 0 到 132150 的哈希表。如果我将条形拖动到 66%,它将是 87219,如果我拖动到 67%,它将是 88540……那么中间值会发生什么,比如 88000?没有办法代表他们。如果 88000 来自数据库,使用您的公式,它将回退到 87219,因为有一个转换为 int,所以没有办法准确表示 88000,例如。这家伙需要长值,他说:“强制转换为 int 是没有选择的”。知道了? @user10844401
  • 是的,主要问题是 Seekbar 显然不允许您将最大值设置为大于 100。但如果进步是双倍的,那就没问题了。这是一个非常不方便的限制。
猜你喜欢
  • 1970-01-01
  • 2012-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-16
  • 1970-01-01
  • 1970-01-01
  • 2017-10-27
相关资源
最近更新 更多