android – 在RatingBar上调用getProgressDrawable()只显示一个星号

android – 在RatingBar上调用getProgressDrawable()只显示一个星号,第1张

概述我的应用程序中有一个自定义RatingBar,如果用户对其进行评级,则应显示网站平均评分或电影的用户评级.颜色应根据显示的评级是网站平均值还是用户评级而改变. 这是过程: 用户观看电影.显示电影的网站平均评分. RatingBar的布局代码: <RatingBar android:id="@+id/ratingBar" android:isIndicator="true" android 我的应用程序中有一个自定义ratingbar,如果用户对其进行评级,则应显示网站平均评分或电影的用户评级.颜色应根据显示的评级是网站平均值还是用户评级而改变.

这是过程:
用户观看电影.显示电影的网站平均评分.

ratingbar的布局代码:

<ratingbar androID:ID="@+ID/ratingbar" androID:isIndicator="true"     androID:layout_margin="10dip"     androID:progressDrawable="@drawable/site_rating_bar" androID:stepSize="0.1" />

ratingbar风格:

<style name="ratingbar" parent="@androID:style/Widget.ratingbar">    <item name="androID:numStars">10</item>    <item name="androID:layout_wIDth">wrap_content</item>    <item name="androID:layout_height">wrap_content</item>    <item name="androID:minHeight">30dip</item>    <item name="androID:maxHeight">30dip</item></style>

site_rating_bar.xml:

<@R_548_3419@ xmlns:androID="http://schemas.androID.com/apk/res/androID">   <item androID:ID="@+androID:ID/background"      androID:drawable="@drawable/btn_rating_star_off" />   <item androID:ID="@+androID:ID/secondaryProgress"      androID:drawable="@drawable/btn_rating_star_off" />   <item androID:ID="@+androID:ID/progress"      androID:drawable="@drawable/btn_site_rating_star_on" /></@R_548_3419@>

用户可以点击ratingbar并打开一个对话框,在那里他们可以添加自己的电影自定义评级.关闭对话框后,代码将更新上面ratingbar中显示的评级.我还想更改ProgressDrawable,以便星星的颜色发生变化,表明用户已添加自定义评级.

但是当我尝试以编程方式设置ProgressDrawable时它会更新它以便显示正确的颜色,但它只显示一个横跨屏幕的星形.

ratingbar.setProgressDrawable(thisActivity.getResources().getDrawable(R.drawable.user_rating_bar));

user_rating_bar.xml:

<@R_548_3419@ xmlns:androID="http://schemas.androID.com/apk/res/androID">    <item androID:ID="@+androID:ID/background"      androID:drawable="@drawable/btn_rating_star_off" />    <item androID:ID="@+androID:ID/secondaryProgress"      androID:drawable="@drawable/btn_rating_star_off" />    <item androID:ID="@+androID:ID/progress"      androID:drawable="@drawable/btn_user_rating_star_on" /></@R_548_3419@>

我已经尝试保存原始边界并重置它们,但它没有帮助:

Rect bounds = ratingbar.getProgressDrawable().getBounds();  ratingbar.setProgressDrawable(thisActivity.getResources().getDrawable(R.drawable.user_rating_bar));ratingbar.getProgressDrawable().setBounds(bounds);

还尝试重置numStars以防它丢失.

任何想法都非常感激. TIA. 总结

以上是内存溢出为你收集整理的android – 在RatingBar上调用getProgressDrawable()只显示一个星号全部内容,希望文章能够帮你解决android – 在RatingBar上调用getProgressDrawable()只显示一个星号所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1124301.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存