繁体   English   中英

ratingBar之间的空间

[英]Space Between stars of ratingBar

我需要在ratingBar的星星之间插入一个空格,例如评级栏很好:

在此输入图像描述

但我需要它:

在此输入图像描述

我怎么能这样做?

你有一个下一个属性。

android:progressDrawable = "@drawable/rating_stars"
android:indeterminateDrawable = "@drawable/rating_stars"

@ drawable / rating_stars:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+android:id/background"
          android:drawable="@drawable/star_empty" />
    <item android:id="@+android:id/secondaryProgress"
          android:drawable="@drawable/star_empty" />
    <item android:id="@+android:id/progress"
          android:drawable="@drawable/star" />
</layer-list>

star_empty和star是可绘制目录中的图像。 因此,您可以在图形编辑器中更改star和star_empty,并根据需要添加spassing。

我不知道它是否会有用,但我创建了一个自定义库,它允许您以编程方式和XML(以及其他内容)更改空间beetwen stars: SimpleRatingBar

它的特点是:

  • 完全正常工作的android:layout_width :它可以设置为wrap_contentmatch_parent或abritary dp。
  • 任意数量的星星。
  • 任意步长。
  • 可以精确控制恒星的大小,也可以通过设置最大尺寸来控制。
  • 正常状态下的可定制颜色(星形和额定条的边框,填充和背景)。
  • 压制状态下的可定制颜色(星形和额定条的边框,填充和背景)。
  • 恒星之间可定制的尺寸分离。
  • 可定制的星星边框宽度。
  • 可定制的星角半径。
  • 允许设置OnRatingBarChangeListener
  • 星星填充可以设置为从左到右或从右到左(RTL语言支持)。
  • AnimationBuilder集成在视图中,以动画方式编程设置评级。

这是预览

在您的情况下,您只需要:

ratingbar.setStarsSeparation(20, Dimension.DP);

或者,例如,以像素为单位:

ratingbar.setStarsSeparation(100, Dimension.PX);

您可以在jcenterMaven Central找到它。 因此,在build.gradle文件中,只需添加到依赖项:

compile 'com.iarcuschin:simpleratingbar:0.1.+'

只需使用它的自定义图标并使用该样式,我的意思是Photoshop,因为您希望它看起来并替换为系统评级样式图标。

我想你必须抓住系统star png文件的副本,并用photoshop / gimp /其他编辑器手动添加你想要的填充。

我同意Tim我应用了相同的逻辑并且它有效。 在我的项目中,我使用我自己的星形图像进行星形ratin我制作的星形图像在右侧有额外的空间(填充),导致星星之间的空间

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM