Anroid自定义RatingBar,显示半个(小数个)的stepSize时,变为整数个的问题

<RatingBar
    android:id="@+id/rb_starbar"
    style="@style/joblist_item_ratingbar_style"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:isIndicator="false"
    android:numStars="5"
    android:rating="3.5"
    android:stepSize="0.5" />

RatingBar一般都是显示整数个数的,这次因为要显示半个的Star,就把之前的样式改了一改,结果,出现了问题:

无论怎么设置setpSize的值,每次显示的Star都是整个的。。

<item
        android:id="@+android:id/background"
        android:drawable="@drawable/ic_gray">
    </item>
    <item
        android:id="@+android:id/secondaryProgress"
        android:drawable="@drawable/ic_orange">
    </item>
    <item
        android:id="@+android:id/progress"
        android:drawable="@drawable/ic_orange">
    </item>

ic_orange:

ic_gray:

ic_setting:

结果是这样的:

为什么没有显示3.5个Star([email protected][email protected]=)?看了下google的文档。

android:secondaryProgress   Defines the secondary progress value, between 0 and max. 

但是还是不大清楚 secondary progress是什么意思。

那么改下secondaryProgress看下效果:

  <item
        android:id="@+android:id/secondaryProgress"
        android:drawable="@drawable/ic_setting">
    </item>

结果变成了这样:

这下就恍然大悟了。。

这个secondaryProgress会向上取整的显示的。

然后一开始的问题也就迎刃而解了。

请注意下面的secondaryProgress部分和第一个secondaryProgress的区别。

 <item
        android:id="@+android:id/background"
        android:drawable="@drawable/ic_gray">
    </item>
    <item
        android:id="@+android:id/secondaryProgress"
        android:drawable="@drawable/ic_gray">
    </item>
    <item
        android:id="@+android:id/progress"
        android:drawable="@drawable/ic_orang">
    </item>

谢谢,注意secondaryProgress对应的图片就可以了。

时间: 2024-10-05 04:58:23

Anroid自定义RatingBar,显示半个(小数个)的stepSize时,变为整数个的问题的相关文章

自定义RatingBar的显示样式

RatingBar是我们在做项目时常用到的一个控件View,用来表示评价的指数.是五角星样式的,但自带的样式有时候在我们项目中显示不协调,我们就要自定义RatingBar的显示样式. 先还是在布局页面中写上控件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&quo

《连载 | 物联网框架ServerSuperIO教程》- 13.自定义视图显示接口开发,满足不同的显示需求

1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架ServerSuperIO教程>2.服务实例的配置参数说明 <连载 | 物联网框架ServerSuperIO教程>- 3.设备驱动介绍 <连载 | 物联网框架ServerSuperIO教程>-4.如开发一套设备驱动,同时支持串口和网络通讯. <连载 | 物联网框架ServerSupe

自定义进阶2——自定义View显示超大图片

上一节(自定义初学5--自定义View显示图片)已经说了如何自定义View显示图片.做android时,加载图片是避免不了的,加载网络图片还需要异步加载,最烦人的就是经常出现OOM,为了避免这样的问题,我们一般这样解决: 根据图片控件的大小对图片进行压缩显示. 如果图片数量非常多,则会使用LruCache等缓存机制,将所有图片占据的内容维持在一个范围内. 有时加载图片还会遇到特殊情况--就是单个图片非常巨大,还不允许压缩.那么对于这种需求,该如何做呢? 首先不压缩,按照原图尺寸加载,那么屏幕肯定

android 自定义Toast显示风格

1.创建一个自己想要显示Toast风格的XML如下代码(toast_xml.xml): [html] view plaincopyprint? <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match

WinForm自定义ListBox显示样式

WinForm自定义ListBox显示样式,多列分不同颜色显示,效果如下图: 首先向winForm窗口拖入一个ListBox控件,命名为lstConsole,同时将DrawMode设置为:OwnerDrawFixed,这里一定要注意否则我们接下来的工作都不会起作用. 然后我们来自定义ListBoxItem,代码如下: public class ColoredListBoxItem { /// <summary> /// creates a new ColoredListBoxItem ///

Android 自定义 ListView 显示网络歌曲列表

本文内容 环境 项目结构 演示自定义 ListView 显示网络歌曲列表 参考资料 本文最开始看的一个国人的文章,没有源代码,根据文中提供的源代码,自己新建的项目(最可气的是,没有图标图片资源,只能自己乱编),但程序不是很稳定,有时能显示出列表中的缩略图,有时显示不出来,还在主线程访问了网络.后看文章评论,作者给出英文原文链接,本来想这下没事了吧,结果下载源代码运行后,还是有问题~仔细看英文原文,原来他也是根据 Github 上一个项目的基础上搞的,只是添加了式样,以及显示完整的歌曲列表,包括歌

iOS开发-自定义后台显示图片(iOS7-Background Fetch的应用)

之前在用电池医生的时候, 发现它有这样一个功能:当应用进入后台的时候, 会显示另外一张图片覆盖App Switcher显示的界面. 效果如下: 变成----> 而这样的一个功能, 对于保护用户隐私还是挺有用的. 这就涉及到了Background Fetch的使用.当然, Background Fetch有更多,更有用的功能, 详见-->iOS 7学习:多任务处理之Background Fetch 下面就介绍下后台图片切换的实现. 1.程序配置后台模式 操作如下: 2. AppDelegate.

Sharepoint2013搜索学习笔记之自定义结果显示模板(九)

搜索结果通过套用定义好的显示模板来展示结果,显示模板由js和html组成,我们可以通过修改显示模板,然后将修改好的显示模板跟搜索结果绑定起来,来修改搜索结果的显示效果,例子如下图: 修改前 修改后 第一步,确定显示需要修改的显示模板,打开ie,摁f12,定位到搜索结果列表项找到需要修改的搜索项模板 第二步,从搜索中心进入网站设置页面 第三步,点击web设计器库的母版页和页面布局 第四步,进入母版页样式库的 Display Templates/search目录,该目录就是存放搜索结果显示模板的地方

[IOS Tableview] cell自定义view显示错误问题

问题介绍:按照tableviewcell的tag自定义cell的view显示的时候,会出现拖动时显示错误情况. 我做的是一个下载界面,我为了简化问题,就把问题设定为,tag==1的cell已下载,加载时就把已下载的cell的label显示为蓝色.其余默认为黑. 比如我在代码里,想要tag==1的cell的label字体为蓝色,这样写就会出现上下拖动时tag==11的也出现蓝色(视具体情况而定). if([cell.tag==1){ //tag==1就把label显示为蓝色 cell.label.