Как уменьшить размер рейтинга?
В моей деятельности у меня есть несколько баров рейтинга. Но размер этого бара настолько велик!
Как уменьшить размер?
Edit
Благодаря Габриэлю Негуту,
Я сделал это со следующим стилем:
<RatingBar
style = "?android:attr/ratingBarStyleSmall"
android:numStars = "5"
android:rating = "4" />
Теперь размер уменьшается, но количество звезд и рейтинг не вступают в силу!!!
Зачем? У меня 7 звезд, из которых 6 из них выбраны.
Ответы
Ответ 1
Исходная ссылка, которую я опубликовал, теперь отключена (есть веская причина, по которой размещение ссылок не является лучшим способом). Вам нужно стилизовать RatingBar
с помощью ratingBarStyleSmall
или пользовательского стиля, наследующего от Widget.Material.RatingBar.Small
(при условии, что вы используете Material Design в своем приложении).
Вариант 1:
<RatingBar
android:id="@+id/ratingBar"
style="?android:attr/ratingBarStyleSmall"
... />
Вариант 2:
// styles.xml
<style name="customRatingBar"
parent="android:style/Widget.Material.RatingBar.Small">
... // Additional customizations
</style>
// layout.xml
<RatingBar
android:id="@+id/ratingBar"
style="@style/customRatingBar"
... />
Ответ 2
Это было мое решение после многих попыток уменьшить рейтинг-бары небольшими размерами даже без уродливого дополнения
<RatingBar
android:id="@+id/listitemrating"
style="@android:attr/ratingBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleX=".5"
android:scaleY=".5"
android:transformPivotX="0dp"
android:transformPivotY="0dp"
android:isIndicator="true"
android:max="5" />
Ответ 3
Если вы хотите показать панель оценки небольшого размера, просто скопируйте и вставьте этот код в свой проект.
<RatingBar
android:id="@+id/MyRating"
style="?android:attr/ratingBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/getRating"
android:isIndicator="true"
android:numStars="5"
android:stepSize="0.1" />
Ответ 4
Вы можете установить его в XML-коде для RatingBar
, используйте scaleX
и scaleY
для соответствующей настройки. "1.0" будет нормальным размером, и что-нибудь в ".0" уменьшит его, и что-то большее, чем "1.0", увеличит его.
<RatingBar
android:id="@+id/ratingBar1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleX="0.5"
android:scaleY="0.5" />
Ответ 5
Следующий сниппет работал у меня, чтобы изменить размер рейтинга
<RatingBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ratingBar"
style="?android:attr/ratingBarStyleIndicator"
android:scaleX=".5"
android:rating="3.5"
android:scaleY=".5"
android:transformPivotX="0dp"
android:transformPivotY="0dp"
android:max="5"/>
![введите описание изображения здесь]()
Ответ 6
Рабочий пример
<RatingBar
style="@style/RatingBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"
android:rating="3.5"
android:stepSize="0.5" />
и добавьте это в свой XML файл стилей
<style name="RatingBar"
parent="android:style/Widget.Material.RatingBar.Small">
<item name="colorControlNormal">@color/primary_light</item>
<item name="colorControlActivated">@color/primary_dark</item>
</style>
Таким образом, вам не нужно настраивать рейтингBar.
Ответ 7
<RatingBar
style="?android:attr/ratingBarStyleIndicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
Ответ 8
Проверьте мой ответ здесь. Лучший способ достичь этого.
<style name="MyRatingBar" parent="@android:style/Widget.RatingBar">
<item name="android:minHeight">15dp</item>
<item name="android:maxHeight">15dp</item>
<item name="colorControlNormal">@color/white</item>
<item name="colorControlActivated">@color/home_add</item>
</style>
и использовать как
<RatingBar
style="?android:attr/ratingBarStyleIndicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:isIndicator="false"
android:max="5"
android:rating="3"
android:scaleX=".8"
android:scaleY=".8"
android:theme="@style/MyRatingBar" />
Ответ 9
Если вы используете Рейтинговую строку в Linearlayout с weightSum. Пожалуйста, убедитесь, что вы не должны назначать layout_weight для строки рейтинга. Вместо этого поместите строку рейтинга в относительную компоновку и придайте вес относительной компоновке. Сделайте содержание ширины строки рейтинга.
<RelativeLayout
android:layout_width="0dp"
android:layout_weight="30"
android:layout_gravity="center"
android:layout_height="wrap_content">
<RatingBar
android:id="@+id/userRating"
style="@style/Widget.AppCompat.RatingBar.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:stepSize="1" />
</RelativeLayout>
Ответ 10
Если вам нужен только стиль по умолчанию, убедитесь, что у вас есть следующая ширина/высота, в противном случае numStars могут быть испорчены:
android:layout_width="wrap_content"
android:layout_height="wrap_content"
Ответ 11
В RatingBar
атрибут:
style="?android:attr/ratingBarStyleIndicator"
Ответ 12
Используя Widget.AppCompat.RatingBar
, вы можете использовать 2 стиля; Indicator
и Small
для больших и маленьких размеров соответственно. Смотрите пример ниже.
<RatingBar
android:id="@+id/rating_star_value"
style="@style/Widget.AppCompat.RatingBar.Small"
... />
Ответ 13
Для тех, кто создал рейтинговую панель программно и хочет установить небольшую рейтинговую панель вместо большой рейтинговой шкалы по умолчанию
private LinearLayout generateRatingView(float value){
LinearLayout linearLayoutRating=new LinearLayout(getContext());
linearLayoutRating.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT));
linearLayoutRating.setGravity(Gravity.CENTER);
RatingBar ratingBar = new RatingBar(getContext(),null, android.R.attr.ratingBarStyleSmall);
ratingBar.setEnabled(false);
ratingBar.setStepSize(Float.parseFloat("0.5"));//for enabling half star
ratingBar.setNumStars(5);
ratingBar.setRating(value);
linearLayoutRating.addView(ratingBar);
return linearLayoutRating;
}
Ответ 14
В теге RatingBar
добавьте эти две строки
style="@style/Widget.AppCompat.RatingBar.Small"
android:isIndicator="false"