Я хочу сделать стиль для рейтинговой панели программно.Я прочитал этот урок Довольно рейтинговая строка
Я могу сделать layerList и селектор, и я могу связать их программно, но я не могу связать layerList, который я сделал с атрибутом style программно, поэтомуя могу установить атрибут style в конструкторе строки рейтинга с моим собственным стилем RatingBar rb=new RatingBar(getBaseContext(), null, defStyle);
.
, чтобы создать собственную панель рейтинга. Мне нужно сделать следующее: -
1-make 2 xmls один длясостояние full_empty и еще одно для полностью пустого они оба включают селекторы, которые я сделал, например, для состояния fullFilled:
StateListDrawable state_fullFilled = new StateListDrawable();
state_fullFilled.addState(new int[] {android.R.attr.state_pressed},
getResources().getDrawable(R.drawable.star_rated));
state_fullFilled.addState(new int[] {android.R.attr.state_focused},
getResources().getDrawable(R.drawable.star_rated));
state_fullFilled.addState(new int[] {android.R.attr.state_selected },
getResources().getDrawable(R.drawable.star_rated));
это для fullEmpty: -
StateListDrawable state_fullEmpty = new StateListDrawable();
state_fullEmpty.addState(new int[] {android.R.attr.state_pressed},
getResources().getDrawable(R.drawable.rate));
state_fullEmpty.addState(new int[] {android.R.attr.state_focused},
getResources().getDrawable(R.drawable.rate));
state_fullEmpty.addState(new int[] { android.R.attr.state_selected},
getResources().getDrawable(R.drawable.rate));
2-затемдолжен составить layerList из тех рисованных объектов, которые я сделал следующим образом: -
Drawable[] d=new LayerDrawable[2];
d[0]=state_fullEmpty;
d[1]=state_fullFilled;
LayerDrawable layer=new LayerDrawable(d);
3-я должен сделать этот шаг программно, но я не могу: -
<style name="foodRatingBar" parent="@android:style/Widget.RatingBar">
<item name="android:progressDrawable">@drawable/food_ratingbar_full</item>