簡體   English   中英

Android評分欄設置星級

[英]Android rating bar set star dimension

我在我想縮小星星尺寸的應用程序中顯示評分欄。 所以這是評級欄的xml

       <RatingBar
                android:id="@+id/ratingBar"
                style="?android:attr/ratingBarStyleSmall"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"
                android:layout_marginTop="10dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:clickable="false"
                android:max="5"
                android:stepSize="0.25"
                android:numStars="0"
                android:focusable="false"
                android:layout_gravity="center_horizontal"
                android:focusableInTouchMode="false"
                android:isIndicator="true"/>

我正在這樣設置顏色和設置等級

 private RatingBar ratingBar;
 Drawable ratingBarColor = ratingBar.getProgressDrawable();
ratingBar = (RatingBar) view.findViewById(R.id.ratingBar);
 Drawable ratingBarColor = ratingBar.getProgressDrawable();
ratingBar.setRating((float) (value));
 DrawableCompat.setTint(ratingBarColor, ContextCompat.getColor(getActivity(), R.color.red));

但是問題是無論任何值,顏色和十進制填充都不起作用。我正在使用樣式來減小星形尺寸。奇怪的是,如果我在xml中刪除樣式屬性,它將設置准確的值作為星形,但是尺寸將重置為默認值。如果我將最小/最大高度加到星形,圖像將被裁剪。 這是相同的問題:- 如何在RatingBar中設置星星的自定義大小,嘗試過: style="?android:attr/ratingBarStyleIndicator"仍然是同一問題。 我沒有得到樣式屬性有什么問題。

我不知道它是否會有用,但我創建了一個自定義庫,該庫可讓您以編程方式(以及其他方法)更改星形尺寸: SimpleRatingBar

它具有以下特點:

  • 可以正常使用android:layout_width :可以將其設置為wrap_contentmatch_parent或非婚生dp。
  • 任意星數。
  • 任意步長。
  • 可以精確控制星星的大小,也可以設置最大大小。
  • 正常狀態下的可自定義顏色(邊框,星標的填充和背景以及等級欄)。
  • 處於按下狀態時的自定義顏色(邊框,星號的填充和背景以及等級欄)。
  • 可自定義星星之間的大小分隔。
  • 可自定義的星星邊框寬度。
  • 可自定義的星星角半徑。
  • 允許設置OnRatingBarChangeListener
  • 可以將星星填充設置為從左到右或從右到左開始(RTL語言支持)。
  • 視圖中集成了AnimationBuilder,可通過動畫以編程方式設置評分。

這是它的預覽

就您而言,您只需要執行以下操作:

ratingbar.setStarSize(20, Dimension.DP);

或以像素為單位:

ratingbar.setStarSize(100, Dimension.PX);

您可以在jcenterMaven Central找到它。 因此,在您的build.gradle文件中,只需添加您的依賴項即可:

compile 'com.iarcuschin:simpleratingbar:0.1.+'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM