如何更改星星的颜色和大小?
发布于 2010-03-15 20:57:52
步骤1:创建您自己的样式,方法是克隆现有样式之一(来自$ANDROID_HOME/platforms/$SDK/data/res/values/styles.xml
),将其放入您自己项目的styles.xml
中,并在将小部件添加到布局时引用它。
步骤#2:为RatingBar
创建您自己的LayerDrawable
XML资源,指向要用于条形图的适当图像。原始样式会将您指向您可以比较的现有资源。然后,调整您的样式以使用您自己的LayerDrawable
资源,而不是内置的资源。
发布于 2011-05-15 21:39:47
上面提到的博客有点复杂,我用了一个类似但更简单的方法。您只需要3个星图(red_star_full.png、red_star_half.png和red_star_empty.png)和1个xml,仅此而已。
将这3个图像放在res/drawable上。
在那里放入以下ratingbar_red.xml:
<?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/red_star_empty" />
<item android:id="@android:id/secondaryProgress" android:drawable="@drawable/red_star_half" />
<item android:id="@android:id/progress" android:drawable="@drawable/red_star_full" />
</layer-list>
最后,告诉你的ratingbar定义使用这个,即
<RatingBar android:progressDrawable="@drawable/ratingbar_red"/>
就这样。
发布于 2014-02-19 14:00:50
如果你只想改变颜色,试试这个:
RatingBar ratingBar = (RatingBar) findViewById(R.id.ratingBar);
LayerDrawable stars = (LayerDrawable) ratingBar.getProgressDrawable();
stars.getDrawable(2).setColorFilter(Color.YELLOW, PorterDuff.Mode.SRC_ATOP);
https://stackoverflow.com/questions/2446270
复制相似问题