将刻度线与 Android SeekBar 对齐

2023-12-24

我正在尝试将一些刻度线指示器添加到 Android 上的 SeekBar 中。我能够生成带有刻度线的背景,但是我无法找到将刻度线与实际 SeekBar 线对齐的方法。正如您从屏幕截图中看到的,刻度线实际上在 SeekBar 行之前开始。

我可以通过反复试验找到距离,但我怀疑它在每台设备上都会保持不变。我还注意到线条和背景边缘之间的空间与拇指滑块的半径相同。但我无法找到一种方法来确定该半径是多少,而且我不确定它是否适用于所有设备。

我知道有可用的自定义搜索栏,但我试图避免添加第三方依赖项。


这使用 getThumb().getMinimumWidth() 来近似到 SeekBar 行的开头的偏移量。它似乎有效,但不确定它是否适用于所有设备。

更新:此代码确实适用于默认情况,但如果更改填充,则会中断。最好使用 getPaddingLeft() 和 getPaddingRight() 来确定滑块的长度和位置。这些函数通常会返回 getThumb().getMinimumWidth()/2,除非填充或缩略图已更改。 getPaddlingLeft() 和 getPaddingRight() 将始终有效。

        Bitmap b= Bitmap.createBitmap(w, h, Bitmap.Config.RGB_565);

        Canvas c=new Canvas(b);
        Paint p=new Paint();
        p.setColor(Color.WHITE);

        int offset=this.getThumb().getMinimumWidth();
        float interval=(float)((width-offset*1.0)/24);
        for(int i=0;i<25;i++){
            float x=i*interval+offset/2;
            c.drawLine(x,0,x,height,p);
            c.drawText(Integer.toString(i),x,height,p);

        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将刻度线与 Android SeekBar 对齐 的相关文章

随机推荐

  • 如何使用 Google Cast SDK 3 添加自定义 SessionProvider

    我们最近将 Google Cast SDK 更新至版本 3 使用此 SDK 应该可以通过在期权提供者 https developers google com android reference com google android gms
  • 批量插入到特定列?

    我想将 csv 文件的列批量插入到目标表的特定列 描述 目标表的列数比我的 csv 文件多 因此 我希望使用 BULK INSERT 将 csv 文件列转到正确的目标列 这可能吗 如果是 那么我该怎么做 我在 上看到了教程和代码http b
  • 在 Unix 中如何找到当前日期减去 7 天?

    我正在尝试查找今天 7 天前的日期 CURRENT DT date F T diff CURRENT DT 7 echo diff 我正在尝试类似上述的方法来查找距离当前日期还少的 7 天 有人可以帮我吗 GNU date将为您计算数学 d
  • 如何使 UIView 动画过渡反向卷曲?

    我正在开发允许在某些情况下翻转界面的应用程序 应支持两种横向方向 横向左和右 设备翻转和方向更改工作正常 但是 在横向模式下 应用程序允许使用 UIViewAnimationTransitionCurlUp 效果转到另一个屏幕 然后使用 U
  • Python Tornado Websocket 连接关闭后仍然打开

    我有一个 Tornado Websocket 服务器 我想在 30 分钟不活动后超时 我用self close 30 分钟不活动后关闭连接 但似乎有些连接即使在关闭后仍保持打开状态 这是代码的基本部分 从这里获得帮助后实现 如何在 Torn
  • 作品中是否有 api order_by/sort 参数?

    如果可以在 api 查询字符串中传递 order by 和 sort 参数 那将非常有帮助 order by 应接受以下选项 距离 签到 姓名 sort 应接受以下选项 asc 描述 在将结果集缩小到返回的最大 50 个结果之前 匹配的结果
  • Spring Jndi 配置,Server.xml

    我在使用 Spring 设置 JNDI 配置时遇到问题 我检查了其他帖子 但无法解决我的问题 我使用 Tomcat 6 作为容器 根据我的理解 我需要在服务器上设置资源 所以在我的server xml文件我有这个
  • 在 R 中格式化 html 表

    我想改善外观html我使用包在 R 中生成的表xtable library xtable html table xtable
  • 日期与 ActiveSupport::TimeWithZone 的比较失败

    我有一个age方法在我的Waiver模型看起来像 def age date nil if date nil date Date today end age 0 unless date of birth nil age date year d
  • Android格式日历输出时间

    我正在使用下面的代码来设置闹钟 我想输出此时的时间 我不知道我是否以错误的方式处理这件事 如果我输出变量 cal 它会包含一长串信息 如何仅提取小时和分钟 Calendar cal Calendar getInstance add 5 mi
  • 如何在 iOS 上获取当地时间 [重复]

    这个问题在这里已经有答案了 我刚刚注意到NSDate nowDate NSDate date 给我 GMT 0 时间而不是当地时间 所以基本上在我的 iPad 上是 13 00 这段代码的输出是 12 00 如何正确获取当地时间 试一试 N
  • java 中 .length 的时间复杂度或隐藏成本

    我正在查看一个java项目并发现了一个for循环的写法如下 for int i 1 i
  • 所有类文件中的错误:R 无法解析

    示例代码 setContentView R layout main Error R cannot be resolved 所有类文件中都有这个错误 我无法摆脱它 我已经检查了 XML 文件 没有错误 我已经确保我没有意外导入 android
  • 这个 php.ini 文件到底在哪里?

    我在 yahoo 上使用 phpMyAdmin 运行 php 与 4 1 14 它说该文件位于 usr lib php php4 ini 但我在任何地方都找不到它 它在 phpMyAdmin 文件夹中吗 我真的需要尽快找到这个并关闭 mag
  • 在 Codeigniter 中添加语言的 URI 段

    我有一个网站 我需要开发支持多种语言 例如 en tr ar sp 等 但问题是 使用 Codeigniter 实现这一点的最佳方法是什么 我有一个控制器 SITE 我有很多功能 例如 酒店 城市 页面 博客 我想在此方法之前添加一个段 语
  • 识别 Kibana 和 ElasticSearch 中的时间戳

    我是 ElasticSearch 和 Kibana 的新手 无法让 Kibana 识别我的时间戳 我有一个包含大量数据的 JSON 文件 我希望使用 Curl 将其插入到 Elasticsearch 中 以下是其中一个 JSON 条目的示例
  • 使用 smo 以编程方式备份​​和还原 Azure 数据库

    我们有一个正在运行的网络应用程序 一切都托管在 azure 上 我们有一台sql server和两个数据库 生产和测试 客户请求备份生产数据库并将其恢复以代替测试数据库的功能 我正在使用以下代码 public static void Bac
  • 根据列值从数据框中随机选择行

    我有一个 pandas 数据框 如下所示 col1 col2 label a b 0 b b 0 0 1 and the value counts对于标签列 df label value counts 0 200000 1 10000 我想
  • “git push”到 github 时出错

    我在 github com 有一个公共存储库 有 2 个分支 master and test 我在本地创建了一个新目录并执行了以下操作 git clone email protected cdn cgi l email protection
  • 将刻度线与 Android SeekBar 对齐

    我正在尝试将一些刻度线指示器添加到 Android 上的 SeekBar 中 我能够生成带有刻度线的背景 但是我无法找到将刻度线与实际 SeekBar 线对齐的方法 正如您从屏幕截图中看到的 刻度线实际上在 SeekBar 行之前开始 我可