Android 以编程方式设置比率栏选择器
在我的自定义Ratingbar类中,我希望以编程方式设置其选择器 这将起作用并更改颜色状态Android 以编程方式设置比率栏选择器,android,android-custom-view,ratingbar,Android,Android Custom View,Ratingbar,在我的自定义Ratingbar类中,我希望以编程方式设置其选择器 这将起作用并更改颜色状态 LayerDrawable stars = (LayerDrawable) getProgressDrawable(); stars.getDrawable(2).setColorFilter(Color.parseColor("#62CFDE"), PorterDuff.Mode.SRC_ATOP); // for filled stars stars.getD
LayerDrawable stars = (LayerDrawable) getProgressDrawable();
stars.getDrawable(2).setColorFilter(Color.parseColor("#62CFDE"),
PorterDuff.Mode.SRC_ATOP); // for filled stars
stars.getDrawable(1).setColorFilter(Color.parseColor("#FFFFFF"),
PorterDuff.Mode.SRC_ATOP); // for half filled stars
stars.getDrawable(0).setColorFilter(Color.parseColor("#62CFDE"),
PorterDuff.Mode.SRC_ATOP); // for empty stars
但我想在选择器中设置图像,但此代码不起作用
StateListDrawable states = new StateListDrawable();
states.addState(new int[]{android.R.attr.progressDrawable}, selectedImage);
states.addState(new int[]{android.R.attr.progress}, selectedImage);
states.addState(new int[]{android.R.attr.secondaryProgress}, backgroundImage);
states.addState(new int[]{android.R.attr.background}, backgroundImage);
setBackground(states);
请建议我如何以编程方式设置分级栏的选择器 最后,为了实现这一点,我做了以下工作 添加了一个LayerlistXML,这里我给出了所有三个州的临时图像
<?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/blue_rect" />
<item android:id="@android:id/secondaryProgress"
android:drawable="@drawable/blue_rect" />
<item android:id="@android:id/progress"
android:drawable="@drawable/blue_rect" />
最后,为了实现这一点,我做了以下工作 添加了一个LayerlistXML,这里我给出了所有三个州的临时图像
<?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/blue_rect" />
<item android:id="@android:id/secondaryProgress"
android:drawable="@drawable/blue_rect" />
<item android:id="@android:id/progress"
android:drawable="@drawable/blue_rect" />
您是否尝试了ratingBar.setProgressDrawable(状态)@大卫劳卡:是的,但它不起作用。你试过ratingBar.setProgressDrawable(states)@大卫劳卡:是的,但它不起作用