阅读背景:

Android评分控件RatingBar的相关问题

来源:互联网 
getProgressPerStar(),字面意思就是每颗心表示的进度,默认情况下我们的mNumStars=5(没有自己设置的情况下),那函数最后返回的是1f*getMax()/mNumStars,在上面的代码中结果就是一颗星的进度表示为1(1进度/每颗星),总共5颗星,按照数学逻辑是五颗星总进度是1(100%),那么一颗星就是20%.上面步长0.1,rating为4.1总进度应该为4*20%+0.1*20%=82% 可是现实效果只有4颗星(80%) ,这是为什么?我们仔细看setRating(float rating)函数的具体实现,最后实质上调用的是父类的setProgress()方法,只是传入的参数是经过数学处理的Math.round,而在java的api函数round的意思是getProgressPerStar(),字面意思就是每颗心表示的进度,默认情况下我们的mNumSt


你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: