Я хочу уменьшить размер бара Rating, у меня есть некоторые свойства стиля, которые это делают, но они недоступны для взаимодействия с пользователем, это просто индикатор. Поэтому, пожалуйста, дайте мне знать, как уменьшить размер. Спасибо заранее.
Проблема в уменьшении размера рейтингового бара.
Ответ 1
Как приклеить приведенный код здесь...
Шаг-1. Вам нужны ваши собственные рейтинговые звезды в res/drawable
...
Шаг-2 В res/drawable
вам нужно ratingstars.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/star_empty" />
<item android:id="@+android:id/secondaryProgress"
android:drawable="@drawable/star_empty" />
<item android:id="@+android:id/progress"
android:drawable="@drawable/star" />
</layer-list>
Шаг-3 В res/values
вам нужно styles.xml
, как следует...
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="foodRatingBar" parent="@android:style/Widget.RatingBar">
<item name="android:progressDrawable">@drawable/ratingstars</item>
<item name="android:minHeight">22dip</item>
<item name="android:maxHeight">22dip</item>
</style>
</resources>
Шаг-4 В вашем макете...
<RatingBar
android:id="@+id/rtbProductRating"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:numStars="5"
android:rating="3.5"
android:isIndicator="false"
style="@style/foodRatingBar"
/>
Попробуйте выполнить...
package x.y;
import android.app.Activity;
import android.os.Bundle;
public class RatingBarDemo extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.product);
}
}
С этим макетом product.xml
...
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="5dip"
android:paddingBottom="5dip">
<ImageView
android:id="@+id/imgProduct"
android:layout_width="50dip"
android:layout_height="50dip"
android:src="@drawable/icon"
android:scaleType="centerCrop"
/>
<RelativeLayout
android:id="@+id/layProductInfo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/imgProduct"
android:paddingLeft="5dip"
android:paddingRight="0dip"
android:paddingTop="5dip"
android:paddingBottom="5dip">
<TextView
android:id="@+id/tvProductName"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Product Name"
android:textSize="17dip"
/>
<RatingBar
android:id="@+id/rtbProductRating"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:numStars="5"
android:rating="3.5"
android:isIndicator="false"
style="@style/foodRatingBar"
android:layout_below="@id/tvProductName"
/>
<TextView
android:id="@+id/tvPriceLabel"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="$45.87"
android:layout_toRightOf="@id/rtbProductRating"
android:layout_below="@id/tvProductName"
android:paddingLeft="10dip"
android:textSize="17dip"
/>
</RelativeLayout>
</RelativeLayout>
Ответ 2
Я просматривал много сообщений с тем же вопросом, и я пытался ответить на вопрос @Vaibhav A. Jani, когда я просто остановился более простым решением этого вопроса. Я не говорю, что ответ @Vaibhav A. Jani неверен.
Попробуй, мне показалось, что звезды намного меньше:
RatingBar ratingBar = new RatingBar(context, null, android.R.attr.ratingBarStyleSmall);
А также я смог динамически создавать множество RatingBar, не касаясь какого-либо xml файла, просто java-кодирования.
Ответ 3
Попробуйте изменить стиль
<RatingBar
android:layout_width="wrap_content"
android:rating="4.5"
style="@style/Base.Widget.AppCompat.RatingBar.Small"
android:layout_height="wrap_content" />
Ответ 4
Рабочий код: Вы можете легко уменьшить размер баров рейтинга Просто добавьте xml, как показано ниже
android: scaleX = "0.5" android: scaleY = "0.5"
<RatingBar
android:id="@+id/ratingBar_visibility"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:numStars="5"
android:scaleX="0.5"
android:scaleY="0.5" />