我在应用程序中有一个 RatingBar 组件,我对其进行了以下配置:
android:numStars="5"
android:stepSize="1.0"
问题是一旦触摸从下一个星星的部分穿过一个像素,下一个星星也会突出显示。有没有办法等到手指触摸到下一颗星的更多区域,然后才突出显示它。
注意:我不为星星使用 PNG。
最佳答案
如果您愿意尝试不同于普通的 RatingBar,您可能想尝试我制作的库:SimpleRatingBar .
它通过仅在触摸事件大于或等于 stepSize/4
时绘制填充来解决您提到的问题。这使得行为更加流畅,“跳动”更少。
它的特点:
- 完全可用的
android:layout_width
:它可以设置为wrap_content
、match_parent
或任意 dp。 - 任意数量的星星。
- 任意步长。
- 星星的大小可以精确控制或通过设置最大大小来控制。
- 正常状态下的可自定义颜色(边框、填充和星星背景以及评分栏)。
- 按下状态下的可自定义颜色(边框、填充和星星背景以及评分栏)。
- 星星之间可自定义的大小分隔。
- 可定制的星星边框宽度。
- 可自定义的星角半径。
- 允许设置 OnRatingBarChangeListener 和 OnClickListener
- 可以将星星填充设置为从左到右或从右到左(RTL 语言支持)。
- AnimationBuilder 集成在 View 中以通过动画以编程方式设置评分。
您可以在 jcenter
、Maven Central
和 JitPack
中找到它。所以在你的 build.gradle
文件中添加你的依赖项:
编译 'com.iarcuschin:simpleratingbar:0.1.+'
关于Android RatingBar 比预期更早突出明星,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41021015/