ratingBar之间的空间

时间:2012-06-18 23:24:31

标签: android rating

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

enter image description here

但我需要它:

enter image description here

我怎么能这样做?

5 个答案:

答案 0 :(得分:4)

你有下一个属性。

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。

答案 1 :(得分:4)

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

它的特点:

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

Here is a preview of it

在您的情况下,您只需要这样做:

ratingbar.setStarsSeparation(20, Dimension.DP);

或者,例如,像素:

ratingbar.setStarsSeparation(100, Dimension.PX);

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

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

我认为您必须获取系统星形png文件的副本,并使用photoshop / gimp /其他编辑器手动添加您想要的填充。

答案 4 :(得分:0)

我同意蒂姆 我应用了相同的逻辑并且工作正常。 在我的项目中,我正在使用我自己的星形图像为明星拉丁 我制作的星形图像在右侧有额外的空间(填充),导致星星之间的空间