![]() |
1
25
步骤1:通过克隆现有样式之一(从
第二步:创建自己的
|
![]() |
2
119
上面提到的博客有点复杂,我用了一种类似但简单的方式。 您需要3星图像(red_star_full.png、red_star_half.png和red_star_empty.png)和一个XML。 把这3张图片放在分辨率/可绘制的位置。 将下面的RatingBar_red.xml放在那里:
最后,告诉您的批准栏定义使用这个,即
就这样。 |
![]() |
3
90
如果只想更改颜色,请尝试此操作:
|
![]() |
4
59
对我来说最简单的方法……如果您要扩展AppCompat活动 在build.gradle中添加最新的appcompat库。
使您的活动扩展android.support.v7.app.appcompatactivity
在Styles.xml文件中声明自定义样式。
通过android:theme属性将此样式应用于您的分级栏。
|
![]() |
5
47
2015年更新 现在你可以使用 DrawableCompat 给各种抽屉上色。例如:
这是向后兼容的API 4 |
![]() |
6
34
如果你想改变所有星星的颜色,我会用:
|
![]() |
7
31
来自API 21 用这三行代码很容易改变星星的颜色:
这样做,您将更改星星的背景色和边框色。 |
![]() |
8
25
Alex和Commonware发布的解决方案是正确的。不过,有一件事是Android从来没有提到过适合不同密度的像素大小。以下是基于光晕的每个密度所需的尺寸。 小星星
中星
大星星
|
![]() |
9
23
因此,我已经花了两个小时来解决这个问题,并且我已经为所有API版本提出了一个可行的解决方案,其中还显示了半星评级。
您可以使用以下Drawables顺序调用该方法:
注意:还必须在XML中指定属性“max”和“numstars”,否则将不显示半星。 |
![]() |
10
12
现在你可以使用 DrawableCompat 从AppCompat v22.1.0到动态着色所有类型的可绘制文件,当您用一组可绘制文件支持多个主题时非常有用。例如:
这向下兼容到API 4。另请参见Chris Banes的博客帖子 Support Libraries v22.1.0 对于实际的大小和形状,您需要为适当的大小定义一个新的样式和图层列表抽屉,因为其他人已经在上面回答过。 |
![]() |
11
10
使用
样式.xml
布局.xml
|
![]() |
12
9
只需从XML更改分级栏的颜色:
|
![]() |
13
7
要更改颜色,只需设置参数android:progresstint
样式属性的大小。 |
![]() |
14
5
最简单的方法:
|
![]() |
15
4
正在生成@lgvalle的答案。
这将保留分数步颜色。 |
![]() |
16
4
使用你自己的颜色 |
![]() |
17
4
添加新样式后,可以在
|
![]() |
18
3
适用于21及以上版本的Android经过一些研究,我提出了这个方法来设置背景色调、间隙色调(例如:半星)和星星色调。
|
![]() |
19
3
简单的解决方案,使用 应用兼容栏 和它的 设置进度列表 实现这一点的方法,请参见 answer 供参考。 |
![]() |
20
2
我通过以下方式解决了这个问题:
|
![]() |
21
2
对我来说,它起作用了…… |
![]() |
22
1
|
![]() |
23
1
使用上面的答案,我创建了一个快速静态方法,可以很容易地重用。它只是为了给被激活的恒星着色。没有被激活的恒星仍然是灰色的。
只需通过你的评级栏和颜色
如您所见,我使用drawablecompat,所以它是向后兼容的。 编辑:此方法不适用于API21(请找出原因)。当调用setProgressBar时,将以NullPointerException结束。我最终在api>=21上禁用了整个方法。 对于api>=21,我使用superpuccio解决方案。 |
![]() |
24
0
1)声明此XML
2)在style.xml中
3)
6)分级激活---取任何暗色的图像,因为它将作为不同分级的颜色透明度。 RATING撘inactive(不活动)--用浅色背景拍摄与上述图像大小相同的任何图像。如果未选择任何分级,则将使用该图像。 |
![]() |
25
0
更改星星边框颜色的一个非常简单的方法是使用xml参数:
在RatingBar视图中。该值应该是颜色的十六进制代码。 |
![]() |
26
0
我一直在寻找一种可靠的方法来实现这一点,至少一直到API 9。 “强制转换为分层可拖动”解决方案对我来说似乎是一个危险的解决方案,当我在2.3版的Android手机上测试它时,它成功地强制转换了,但是对drawablecompat.settint(…)的调用没有任何效果。 装载可提取资产的需求对我来说也不是一个好的解决方案。 我决定编写自己的解决方案代码,这是一个扩展AppCompatingBar的类,使用一个自定义的可绘制工具,以编程方式绘制星星。它非常适合我的需要,我会张贴它以防它帮助任何人: https://gist.github.com/androidseb/2b8044c90a07c7a52b4bbff3453c8460 链接更容易,因为您可以直接获得完整的文件,但这里是完整的代码以防万一:
|
![]() |
27
0
回答有点晚,但我希望它能帮助一些人。
这是怀特兰廷斯塔的样子
例如,有了它,星星就会变成白色。 |
![]() |
28
0
运行时自动使用分级栏更改触摸星上的颜色。 首先在app\src\main\res\values\styles.xml文件中添加样式:
然后您的分级栏添加如下主题:
|
![]() |
29
0
|
![]() |
30
-1
正如前面的答案所暗示的,改变评级栏的颜色并不容易。恒星不是程序化绘制的,它们是具有固定大小和特定颜色梯度的图像。要更改颜色,您必须使用不同的颜色创建自己的星型图像,然后继续创建自己的可绘制XML资源,并使用setProgressDrawable(drawable d)或xml属性android:progressDrawable将其传递到RatingsBar类。 |
|
user7332748 · Django评级系统[关闭] 7 年前 |
![]() |
Ygor Fraga · 如何确定离子电池的额定值? 7 年前 |
|
user4851087 · 如何使用Bootstrap星级来克隆元素 9 年前 |
![]() |
Darkmouse · RubyonRails-NilClass的未定义方法 10 年前 |
![]() |
ama · jQuery星级评定插件回调函数,具有以前的默认设置值 11 年前 |