29

有了Android SDK 1.1 r1,有什么方法可以RatingBar用我自己的方式更改小部件类的星形图像?这可能吗?如果是这样,那怎么办?

谢谢。

4

2 回答 2

57

不确定 1.1,但是对于 1.6 及更高版本,您可以扩展Widget.RatingBar样式并覆盖负责星形可绘制对象的属性(在 中values/styles.xml):

 <style name="myRatingBar" parent="@android:style/Widget.RatingBar">
        <item name="android:progressDrawable">@drawable/my_ratingbar_full</item>
        <item name="android:indeterminateDrawable">@drawable/my_ratingbar_full</item>
 </style>

无需继承 RatingBar,只需使用 'style' 属性将此样式传递给它:

<RatingBar style="@style/myRatingBar" ... /> 

下载 android 源代码并查看 core drawable 文件夹中的 ratingbar_full.xml 以查看要放入的内容my_ratingbar_full

您可以在此处找到更完整的版本: 如何在 Android 中创建自定义评分栏

于 2010-02-06T23:35:32.443 回答
10

简短的回答是它看起来在技术上是可行的。最简单的方法是根据 RatingBar 源代码创建您自己的 RatingBar(更优雅的是extend将原始的 RatingBar 变成您自己的)。从那里您还需要使用原始 RatingBar 源 xml 作为示例创建自己的 RatingBar 样式(或继承和扩展原始 RatingBar 样式)。

在 developer.android.com 上可以使用 git 获取源代码。

我怀疑不鼓励制作自己的评分栏,因为它违背了操作系统的一致外观和感觉。

于 2009-03-05T03:45:53.447 回答