kotlin 多色Android滑块是否可作为库使用?[关闭]

utugiqy6  于 2023-06-06  发布在  Kotlin
关注(0)|答案(3)|浏览(396)

**已关闭。**此问题正在寻求书籍、工具、软件库等的建议。它不符合Stack Overflow guidelines。目前不接受答复。

我们不允许问题寻求书籍,工具,软件库等的建议。您可以编辑问题,以便可以用事实和引用来回答。
昨天关门了。
Improve this question
我想创建这种类型的滑块

我不要密码,只要方向。做这个最好的办法是什么?

  • 有没有类似的图书馆项目?
  • 是否有任何类似视图已经在本地可用。
  • 在Jetpack Composer UI中更容易创建。
vi4fp9gy

vi4fp9gy1#

由于您将所需的视图称为“滑块”,因此我假设您正在考虑使用Material Design库中的某些内容。我个人对Material Design视图的经验是,它们主要强制执行MD准则,并且不是很灵活,尽管在这种情况下它们可能对您有用。

  • 有没有类似的图书馆项目?

至于库,看起来其他答案指向一些可能能够实现您正在寻找的功能的库。

  • 是否有任何类似视图已经在本地可用。

我建议你使用SeekBar,不是因为我认为它一定更好,而是我相信你可以通过一点努力得到你想要的结果,除了标准库之外,它不会有外部依赖。
Here是我的另一个答案,它解释了如何构建一个类似于您正在寻找的结构的 SeekBar。您的背景将是圆角矩形与梯度阴影。背景颜色可以定义为here。您的搜索栏可以使用LayerList构建。层列表可以在XML中定义并在代码中修改。你也可以放弃层列表,以编程方式绘制搜索栏,或者将所有内容放入一个可绘制对象中。你做什么将取决于你的设计约束。
拇指可以容易地是定制拇指。
您可能会得到大部分XML,但有一些代码,但不多。我会考虑将代码放在一个自定义视图中,该视图扩展自标准的 SeekBar

hgqdbh6s

hgqdbh6s3#

我用Jetpack Compose构建了类似的东西,而不是使用不同的颜色和间隔,它从颜色创建渐变,但你要求的是在当前构建上做一点工作,它可以显示任何东西。您可以检查源代码并实现在轨道区段上绘制。如果它的工作量很大,我可以添加类似的功能,当我可用。
在Compose Canvas中最简单的方法是,对于View,它是一个在onDraw内部绘制的自定义View。
你基本上画一条宽度和圆角帽或圆角矩形的线,并在其周围画一个描边的边框。做一些插值从你的值范围改变到屏幕上的像素,并根据用户触摸位置获得当前值,并将其插值到定义的范围。
假设你的Slider是1000 px宽。你的范围在0 f和1f之间,你把600 px的触摸转换为0.6值,反之亦然。对于不同的颜色,你可以传递一个List<Pair<Color,Float>来根据基于浮点的停止在颜色之间划分滑块。
对于绘制线,您可以设置3种类型的高度,并使用模数为每个高度分配1,5和20值。我有一些类似的东西,用于使用View here构建Compass
https://github.com/SmartToolFactory/Compose-Colorful-Sliders

相关问题