如何解决如何缩小Ratingbar的大小?
| 在我的活动中,我有一些评分栏。但是这个酒吧的大小太大了! 如何缩小尺寸? 编辑 多亏了加百利·尼古特(Gabriel Negut), 我使用以下样式进行了此操作:<ratingBar
style = \"?android:attr/ratingBarStyleSmall\"
android:numStars = \"5\"
android:rating = \"4\" />
现在,尺寸减小了,但是星级数和等级不生效!!!
为什么?我有7颗星被选中其中6颗。
解决方法
我发布的原始链接现在已断开(有一个很好的理由,为什么仅发布链接不是最佳方式)。您必须使用
ratingBarStyleSmall
或继承自Widget.Material.RatingBar.Small
的自定义样式来设置RatingBar
的样式(假设您正在应用中使用Material Design)。
选项1:
<RatingBar
android:id=\"@+id/ratingBar\"
style=\"?android:attr/ratingBarStyleSmall\"
... />
选项2:
// styles.xml
<style name=\"customRatingBar\"
parent=\"android:style/Widget.Material.RatingBar.Small\">
... // Additional customizations
</style>
// layout.xml
<RatingBar
android:id=\"@+id/ratingBar\"
style=\"@style/customRatingBar\"
... />
, 这是我的解决方案,经过很多努力以减小尺寸小而没有难看的填充物
<RatingBar
android:id=\"@+id/listitemrating\"
style=\"@android:attr/ratingBarStyleSmall\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:scaleX=\".5\"
android:scaleY=\".5\"
android:transformPivotX=\"0dp\"
android:transformPivotY=\"0dp\"
android:isIndicator=\"true\"
android:max=\"5\" />
, 如果要以小尺寸显示评级栏,则只需将此代码复制并粘贴到项目中。
<RatingBar
android:id=\"@+id/MyRating\"
style=\"?android:attr/ratingBarStyleSmall\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:layout_below=\"@id/getRating\"
android:isIndicator=\"true\"
android:numStars=\"5\"
android:stepSize=\"0.1\" />
, 您可以在XML代码中为ѭ1进行设置,并分别使用ѭ9和ѭ10进行调整。 \“ 1.0 \”将是正常大小,\“。0 \”中的任何内容都会减小它,大于\“ 1.0 \”的任何内容也会增加它。
<RatingBar
android:id=\"@+id/ratingBar1\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:scaleX=\"0.5\"
android:scaleY=\"0.5\" />
, 下面的代码段为我调整了ratingBar的大小
<RatingBar
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:id=\"@+id/ratingBar\"
style=\"?android:attr/ratingBarStyleIndicator\"
android:scaleX=\".5\"
android:rating=\"3.5\"
android:scaleY=\".5\"
android:transformPivotX=\"0dp\"
android:transformPivotY=\"0dp\"
android:max=\"5\"/>
, 工作实例
<RatingBar
style=\"@style/RatingBar\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:numStars=\"5\"
android:rating=\"3.5\"
android:stepSize=\"0.5\" />
并将其添加到您的样式xml文件中
<style name=\"RatingBar\"
parent=\"android:style/Widget.Material.RatingBar.Small\">
<item name=\"colorControlNormal\">@color/primary_light</item>
<item name=\"colorControlActivated\">@color/primary_dark</item>
</style>
这样,您无需自定义ratingBar。
, <RatingBar
style=\"?android:attr/ratingBarStyleIndicator\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
/>
, 在这里检查我的答案。实现它的最佳方法。
<style name=\"MyRatingBar\" parent=\"@android:style/Widget.RatingBar\">
<item name=\"android:minHeight\">15dp</item>
<item name=\"android:maxHeight\">15dp</item>
<item name=\"colorControlNormal\">@color/white</item>
<item name=\"colorControlActivated\">@color/home_add</item>
</style>
并使用像
<RatingBar
style=\"?android:attr/ratingBarStyleIndicator\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:isIndicator=\"false\"
android:max=\"5\"
android:rating=\"3\"
android:scaleX=\".8\"
android:scaleY=\".8\"
android:theme=\"@style/MyRatingBar\" />
, 如果您在LinearLayout中使用带有weightSum的“等级”栏。请确保您不要为评级栏分配layout_weight。取而代之的是,在相对布局内部放置评级栏,并赋予相对布局以权重。使评级栏宽度换行内容。
<RelativeLayout
android:layout_width=\"0dp\"
android:layout_weight=\"30\"
android:layout_gravity=\"center\"
android:layout_height=\"wrap_content\">
<RatingBar
android:id=\"@+id/userRating\"
style=\"@style/Widget.AppCompat.RatingBar.Small\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:layout_gravity=\"center\"
android:stepSize=\"1\" />
</RelativeLayout>
, 如果只需要默认样式,请确保您具有以下宽度/高度,否则numStars可能会变得混乱:
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
, 使用Widget.AppCompat.RatingBar
,您可以使用2种样式。 large21ѭ和Small
分别表示大号和小号。请参见下面的示例。
<RatingBar
android:id=\"@+id/rating_star_value\"
style=\"@style/Widget.AppCompat.RatingBar.Small\"
... />
, 在RatingBar
中给出属性:
style=\"?android:attr/ratingBarStyleIndicator\"
, 在RatingBar
标签中,添加这两行
style=\"@style/Widget.AppCompat.RatingBar.Small\"
android:isIndicator=\"false\"
, 对于那些以编程方式创建评分栏并希望设置小评分栏而不是默认大评分栏的用户
私人LinearLayout generateRatingView(float value){
LinearLayout linearLayoutRating = new LinearLayout(getContext());
linearLayoutRating.setLayoutParams(新的TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT,TableRow.LayoutParams.WRAP_CONTENT));
linearLayoutRating.setGravity(Gravity.CENTER);
RatingBar ratingBar = new RatingBar(getContext(),null,android.R.attr.ratingBarStyleSmall);
ratingBar.setEnabled(false);
ratingBar.setStepSize(Float.parseFloat(\“ 0.5 \”)); //用于启用半星
ratingBar.setNumStars(5);
ratingBar.setRating(value);
linearLayoutRating.addView(ratingBar);
返回linearLayoutRating;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。