如何缩小Ratingbar的大小?

如何解决如何缩小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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?