您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“Android開發(fā)怎么實(shí)現(xiàn)RatingBar星級(jí)評分控件”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
RatingBar是基于SeekBar和ProgressBar的擴(kuò)展,用星型來顯示等級(jí)評定。
通常應(yīng)用場景是在用戶評價(jià)那,如淘寶評價(jià),打車訂餐評價(jià)等等。
使用RatingBar的默認(rèn)大小時(shí),用戶可以觸摸/拖動(dòng)或使用鍵來設(shè)置評分,它有兩種樣式(小風(fēng)格用ratingBarStyleSmall,大風(fēng)格用ratingBarStyleIndicator),其中大的只適合指示,不適合于用戶交互。
【android:isIndicatorRatingBar】是否為指示器,為true時(shí),用戶將無法交互操作,默認(rèn)為false。
【android:numStars】顯示的星型數(shù)量,必須是一個(gè)整形值,像“50”,雖然可以設(shè)置很大,但一般都是5-10個(gè)星星即可。
【android:rating】設(shè)置默認(rèn)的評分。
【android:stepSize】評分每次增加的值。建議大于0小于等于1之間最合適。
其中內(nèi)置了三個(gè)樣式:
style="?attr/ratingBarStyle":默認(rèn)樣式
style="?android:attr/ratingBarStyleSmall":小樣式
style="?android:attr/ratingBarStyleIndicator":指示器樣式
但是使用起來感覺不好看,如下示例:
<RatingBar android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RatingBar android:layout_width="wrap_content" android:layout_height="wrap_content" android:isIndicator="false" android:numStars="5" android:rating="4" android:stepSize="1" /> <RatingBar android:layout_width="wrap_content" android:layout_height="wrap_content" android:isIndicator="false" android:numStars="5" android:rating="3" android:stepSize="1" /> <androidx.appcompat.widget.AppCompatRatingBar android:layout_width="wrap_content" android:layout_height="wrap_content" />
RatingBar ratingBar = findViewById(R.id.rating); ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() { @Override public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) { Log.e("TAG", "onRatingChanged: 當(dāng)前點(diǎn)擊的評分:" + rating); } });
<RatingBar android:layout_width="wrap_content" android:progressDrawable="@drawable/ratingbar_bg" android:layout_height="wrap_content" />
ratingbar_bg.xml
如上我使用的是三個(gè)圖片。
【@android:id/background】屬性為默認(rèn)的圖,
【@android:id/progress】為選中后的圖,
【@android:id/secondaryProgress】為選中了一半的圖。
但這時(shí)候又出現(xiàn)問題了,如果只修改寬高屬性【layout_width】和【layout_height】為某個(gè)固定值,你會(huì)發(fā)現(xiàn)評分組件效果展示又不對了,總是填充滿整個(gè)大小。
寬高屬性要一直是【wrap_content】
但這還沒完,在不同的分辨率上可能出現(xiàn)高度的bug:drawable圖片被垂直拉伸
所以我們按照上面再改改:
<RatingBar android:layout_width="match_parent" android:layout_height="wrap_content" />
<style name="RatingBar_CustomDrawable" parent="@android:style/Widget.Holo.RatingBar.Indicator"> <item name="android:progressDrawable">@drawable/ratingbar_bg</item> <item name="android:minHeight">50dp</item> <item name="android:maxHeight">50dp</item> </style>
固定死高度即可。
“Android開發(fā)怎么實(shí)現(xiàn)RatingBar星級(jí)評分控件”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。