Android自定义RatingBar

Android 自定义RatingBar实现 Android开发中,经常要实现星星的评分效果如下图,所以今天就记录下来,以便他人使用。 1、自定义RatingBar代码: package com.example.myapplicationtest; import android.content.Context; import android.cont... 阅读详情

RatingBar简单介绍

    RatingBar是基于SeekBar(拖动条)和ProgressBar(状态条)的扩展,用星形来显示等级评定,在使用默认RatingBar时,用户可以通过触摸/拖动/按键(比如遥控器)来设置评分,RatingBar自带有两种模式,一个小风格 ratingBarStyleSmall,大风格为ratingBarStyleIndicator,大的只适合做指示,不适用与用户交互。

    
    黄色星形为 自定义RatingBar
    小绿色为自带的 ratingBarStyleSmall
    大绿色为自
带的ratingBarStyleIndicator

   通过设置 style="XXXXXXXXXXXXX"进行设置切换(比如:style="?android:attr/ratingBarStyleIndicator")

自定义RatingBar需要注意的地方

    一般情况下,系统自带的RatingBar是远远无法满足开发需求的,我们根据图片自定一个RatingBar,在开始实现自定义RatingBar之前,顺带说一下res目录下图片放置目录的区别:

    在android sdk 1.5版本之前res目录下面只有一个drawable一个目录,在android sdk 1.6版本以后就出现了三个目录,分别是drawable-hdpi、drawable-ldpi、drawable-mdpi、drawable-xhdpi,
    (1)drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),FWVGA (480x854) 
    (2)drawable-mdpi里面存放中等分辨率的图片,如HVGA (320x480)
    (3)drawable-ldpi里面存放低分辨率的图片,如QVGA (240x320)
    (4)drawable-xhdpi里面存放超大分辨率的图片,至少960dp x 720dp 
由于我们自定义实现的RatingBar里面使用到的星形图片分辨率比较低,所以一般情况下,我们把图片放到drawable-mdpi或者drawable-ldpi里面。

自定义RatingBar的实现过程
    

    首先,根据图片自定一个RatingBar的背景条,和图片放到同一个目录下面(比如drawable-mdpi),room_rating_bar.xml

<?xmlversion="1.0"encoding="utf-8"?>
    <layer-listxmlns:android="http://schemas.android.com/apk/res/android">
        <itemandroid:id="@+android:id/background"
        android:drawable="@drawable/star1"></item> <span></span>              
                <itemandroid:id="@+android:id/secondaryProgress"
                android:drawable="@drawable/star1"></item>
                <itemandroid:id="@+android:id/progress"
        android:drawable="@drawable/star2"></item>
</layer-list>

    backgroud:是用来填充背景图片的,和进度条非常类似,当我们设置最高评分时(android:numStars),系统就会根据我们的设置,来画出以星星为单位的背景(假如android:numStars="5",就会画出5颗灰色的星星)
    progress:是用来在背景图片基础上进行填充的指示属性(和进度条类似,第一进度位置)
    secondaryProgress:同progress一样属于第二进度位置(如果不定义这个,进度条拖动,每次就画出一整颗星星(亮),第二进度(暗)没有覆盖掉第一进度之后的位置,从左往右是拖不出来N.5颗星星的,这样评分效果就不完整)

    其次,通过开始介绍,我们知道RatingBar的样式是通过style来切换的,在android中,我们可以通过在styles.xml文件中通过设置style属性,来继承我们需要自定控件类型,如下styles.xml

<?xmlversion="1.0"encoding="utf-8"?>
<resources>
    <stylename="roomRatingBar"parent="@android:style/Widget.RatingBar">
        <itemname="android:progressDrawable">@drawable/room_rating_bar</item>
        <itemname="android:minHeight">16dp</item>
        <itemname="android:maxHeight">16dp</item>
    </style>
</resources>

  通过 parent属性来选择继承的父类,我们这里继承RatingBar类。
    重新定义 progressDrawable属性(RatingBar的背景条,和我们在首先里面介绍的那样)
maxHeight和minHeight可以根据我们图片像素或者其他参考值来设定。

   最后,在我们需要用到RatingBar的xml配置文件里面添加RatingBar控件。

    main.xml

<RatingBar
        android:id="@+id/room_ratingbar"
        style="@style/roomRatingBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
          android:numStars="5"
         android:rating="4"
        android:layout_marginLeft="10dp">
    </RatingBar>
原文链接
http://my.oschina.net/zhoulc/blog/127065

Android自定义RatingBar,图片可缩放 一、概述最近开发项目的过程需要用到RaingBar控件,类似于一般APP上的评分功能,期初觉得只要用系统自带的RatingBar然后修改图片就好,但是试了之后发现图片不能够自适应改变大小,用了网上的一些方法后貌似也无济于事,于是乎自己写一个简单一点的易用的RaingBar。 第一次写博客,也许写的不是太好,多多见谅,完整项目代码会在最后给出下载链接(Eclipse)思路: 自定义控件继承自Fram 阅读详情

相关推荐

Java代码 自定义Android RatingBar 样式 【调整大小】

RatingBar  Android 中文 API (40) —— RatingBar http://www.cnblogs.com/over140/archive/2010/11/18/1880391.html

Start From Here 2876

android ratingbar 高度,ShapeDrawable作为Android中RatingBar的progressDrawab...

我自定义了@ChrisJenkins方法,因此您可以设置RatingBar图标的大小和评级图像的自定义色调颜色.您可以在RatingBar上设置填充或设置自定义宽度和高度. @ChrisJenkins解决方案帮助我最终想出了一个完全可定制的RatingBar.您也可以在XML中设置参数.public class DrawableRatingBar extends RatingBar{// Tile...

weixin_35112750的博客 286

自定义Android RatingBar控件教程与实战

本文还有配套的精品资源,点击获取 简介:Android内置的RatingBar控件在样式上有限,无法满足所有设计需求。因此,本文将探讨如何自定义RatingBar,包括修改其样式、背景图、间距、大小和分数等属性。教程分为创建自定义View类、绘制星星、设置属性、XML布局和自定义属性定义等步骤,详细阐述了实现高度可定制化RatingBar的过程。 1. Andro...

weixin_42603332的博客 1548

RatingBar简单介绍

RatingBar是基于SeekBar(拖动条)和ProgressBar(状态条)的扩展,用星形来显示等级评定,在使用默认RatingBar时,用户可以通过触摸/拖动/按键(比如遥控器)来设置评分, RatingBar自带有两种模式 ,一个小风格 ratingBarStyleSmall,大风格为ratingBarStyleIndicator,大的只适合做指示,不适用与用户交互。       

路在脚下 837

5G R18标准:AI/ML如何重塑空口优化与网络架构

人工智能与机器学习正逐步成为通信网络优化的核心技术。其核心原理在于通过数据驱动模型,从海量网络数据中学习信道变化、用户行为等统计规律,替代传统的基于固定规则的优化方法。这一技术范式能显著提升网络性能与效率,尤其在空口资源管理、干扰协调和能耗控制等场景中价值突出。在5G Advanced(R18)标准化框架下,AI/ML被系统性地引入空口设计,聚焦于信道状态信息反馈增强、波束管理与预测等关键用例。通过定义网络侧AI、终端侧AI及联合学习的标准化接口与流程,R18旨在实现跨厂商设备的智能协同,推动无线网络向自适

weixin_35671843的博客 244

2018南京大学计算机夏令营机试

1. Count number of binary strings without consecutive 1’s Given a positive integer n(3≤n≤90), count all possible distinct binary strings of length n such that there are no consecutive 1's . Examples...

climber16的博客 1万+

RatingBar setProgressDrawableTiled 动态修改的兼容性问题

解决 setProgressDrawableTiled 版本兼容性问题,在旧版本中 只能通过xml设置 android:progressDrawable来实现 layer-list布局,代码直接设置setProgressDrawable无效,因为在这个之前还调用了一个私有方法tileify。新的版本中已经有setProgressDrawableTiled()可直接进行代码设置android:pro

laozhong110的专栏 1845

涨薪技术|Kubernetes(k8s)环境部署实战

这两者都是在/etc/docker/daemon.json里修改的,所以我们一起配置了就好了,首先执行下述命令编辑daemon.json:​​​​​​​。安装完成后,可以使用以下命令来查看dashboard访问的端口号​​​​​​​。网络插件CNI也是以容器的方式进行启动​​​​​​​。安装完成后可以检查是否拉取了对应的容器​​​​​​​。再使用以下命令进行安装:​​​​​​​。打开后输入以下内容:​​​​​​​。安装1.19.0版本​​​​​​​。修改IP地址:​​​​​​​。

m0_60889254的博客 1085

RatingBar使用,【工作经验分享

现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水,赶快领取吧!Android架构视频+BAT面试专题PDF+学习笔记,或者私信回复【技能提升】即可获取!

m0_60388338的博客 374

Kettle入门指南:从安装到数据转换实战

本文提供Kettle(Pentaho Data Integration)的完整入门指南,涵盖从Java环境安装、软件配置到核心概念(转换与作业)的详细解析。通过实战案例,手把手教你如何将文本文件数据导出到Excel,并连接MySQL数据库进行数据导入,帮助你快速掌握这一强大ETL工具的基本使用,实现高效数据搬运与转换。

weixin_29266647的博客 449

SUMO仿真教程(5) —— 使用“XML“语言自定义构建路网

文章目录一.简要介绍1.node file2.edge file3.lane definitions(1)路段细分(2)邻近的对向车道(3)删除边或车道4.type file(1)简要概述(2)edge定义中引用type文件的示例(3)指定车辆种类的速度限制5.connections file(1)简要概述:(2)connection的属性参数(3)删除连接(4)设置连接的优先级(5)同一边的多个连接二.演示示例:1.自定义编写node file2.自定义编写edge file3.自定义编写type fil

weixin_50632459的博客 5015

android RatingBar基本使用介绍,大牛耗时一年最佳总结让你的app体验更丝滑

style=“?或style=“?或style=“?或(4)progressDrawable的使用系统无样式往往还无法满足大部分需求,如果需要将星星换成其它图案呢?使用属性,设置RatingBar的背景样式。效果图如下:图片.png代码如下:

m0_60452134的博客 936

Field Characteristics 深入解析,理解 SAP ABAP Analytics 中 Dimension 与 Measure 的真正边界

在SAP ABAP Analytics数据模型中,字段应建模为Dimension还是Measure,关键在于业务语义而非数据类型。Dimension提供分析上下文,构成数据坐标系,支持钻取与切片;Measure则需具备明确聚合语义(如#SUM、#MIN、#MAX),且必须满足Distinct(无重复)与Complete(无缺失)原则,确保聚合结果准确。错误的建模会导致聚合偏差,根源常在事实粒度不清或关联关系不当。因此,正确划分字段角色,本质是让Analytical Engine准确理解业务数据的分析逻辑。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 57

Android自定义RatingBar(评分控件)

RatingBar简单介绍 RatingBar是基于SeekBar(拖动条)和ProgressBar(状态条)的扩展,用星形来显示等级评定,在使用默认RatingBar时,用户可以通过触摸/拖动/按键(比如遥控器)来设置评分,RatingBar自带有两种模式,一个小风格ratingBarStyleSmall,大风格为ratingBarStyleIndicator,大的只适合做指示,...

happy++, worry-- 1074

强化学习在视觉导航中的应用

强化学习在视觉导航中的应用​ ,人工智能,计算机视觉,大模型,AI,强化学习(Reinforcement Learning, RL)是一种通过智能体(Agent)与环境进行交互,以最大化累积奖励为目标的机器学习范式。它不依赖于预定义的规则或大量标注数据,而是让智能体在试错过程中学习最优策略。计算机视觉(Computer Vision)则赋予智能体 “观察” 环境的能力,使其能够从图像或视频中提取有用信息。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 22万+

VSCode 搭建C/C++编程环境 2025新版图文安装教程(VSCode安装 + C/C++环境搭建 + 运行测试 + 背景图设置)

100%搭建成功,VSCode 搭建C++编程环境 2025新版图文安装教程(VSCode安装+C++环境搭建+运行测试+背景图设置)

Code_流苏:在代码中寻诗意,在实践中觅真知 2974

android自定义RatingBar

个人感觉,android自带的那个评分控件实在是坑爹的,想要换个样式,颜色,大小,间距什么的,各种状况漫天飞,用着各种不爽。看了一位大神的文章,再加上自己琢磨一下,今天用linearlayout,自己搞个ratingbar,效果还是相当不错的。 自定义ratingbar控件 1.首先在res/values下面新建一个attrs.xml文件 内容如下 xml version="1

韩培杰Carr的博客 722

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

安卓评星条_Android自定义RatingBar(星级评分控件)

RatingBar是基于SeekBar(拖动条)和ProgressBar(状态条)的扩展,用星形来显示等级评定!RatingBar实现的效果图:RatingBar看着自定义的样式远远比Android自带的样式好看多了,用户体验度远远提升,下面我们就来实现该控件:定义根据图片自定一个RatingBar的背景条,和图片放到同一个目录下面five_rating_bar.xmlandroid:drawab...

weixin_27127993的博客 466

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

android自定义评分条(RatingBar)

android自定义评分条(RatingBar)本自定义控件是因为本人在开发过程中,评分条的适配出现问题而诞生,在网上找了些自定义控件,发现都不是自己想要的,所以只能自己动手。 原生的RatingBar适配难是因为在要自定义星星图标无法设置星星的大小和星星之间的间距,适配了这个厂商的手机可能那个手机有又问题,当时我就是在vivo手机适配好,到了同样分辨率的乐视手机出现了问题,我这里的思路是

liu_xiong的博客 8255

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Android自定义RatingBar(评分控件)

RatingBar简单介绍     RatingBar是基于SeekBar(拖动条)和ProgressBar(状态条)的扩展,用星形来显示等级评定,在使用默认RatingBar时,用户可以通过触摸/拖动/按键(比如遥控器)来设置评分, RatingBar自带有两种模式 ,一个小风格 ratingBarStyleSmall,大风格为ratingBarStyleIndicator,大的只适合做指

成长的味道 2419

android之自定义RatingBar

1.自定义attrs &lt;resources xmlns:tools="http://schemas.android.com/tools"&gt; &lt;declare-styleable name="RatingBar" tools:ignore="ResourceName"&gt; &lt;attr name="starImageSize" forma

qq_27773675的博客 351

android RatingBar自定义图片

今天用到Android自带的RatingBar,可是太丑了,由是在网上找了下资料,换成了自定义的图片:   首先自己写个style样式: [java] view plain copy "articlelist_item_ratingbar_style" parent="@android:style/Widget.Ratin

qq_36565527的博客 1123

Android自定义样,Android RatingBar 自定义样式

Android RatingBar 自定义样式1.先定义Style:@drawable/layer_live_rating_bar5//这里放一些你觉得公共的属性(你可以在控件里覆盖这里的属性)2. Drawable里的layer_live_rating_bar.xml:android:id="@+android:id/background"android:drawable="@drawable/...

weixin_33712536的博客 338

Android自定义控件简单实现ratingbar效果

先上图: 一开始让我自定义控件我是拒绝的,因为android很早以前就有一个控件ratingbar,但是设置样式的时候我发现把图片设置小一点就显示不全,一直找不到解办法!(可以设置系统的自带的小样式),反正就是无法任意的改变星星的大小!反正很坑啊。 下面来描述这个控件需要实现的功能: 1:水平放置,布局文件里面可以设置星星图标和背景星星,宽高,边距,星星数量,当前星级 2;实现点击效果

qiuchunjia的专栏 4320

Android RatingBar的基本使用和自定义样式

RatingBar的基本使用比较简单,这里只记录一下几个常用的属性: isIndicator 是否是指示器,如果设置为true,则不可以通过点击来改变进度;如果设置为false,则可点击 numStars 一共有几个星星,默认是5个。 rating 表示进度 RatingBar 样式展示 ============== 之前项目中一共碰到过四种RatingBar样式,各自效果图整理如下: 自定义RatingBar样式 说明: 第一个:原生普通样式(随着主题不同,样式会变) 第二个:原

m0_70082867的博客 1110

Android Ratingbar自定义替换系统图片

RatingBar控件是android自带的一个控件,在一些电商类的app上很常见,但是系统提供的控件图片实在太过单调,而美工又常常会设计一些稀奇古怪的图片用来展示ratingbar(笔者就曾经深受其害),那么应该怎样替换掉系统自带的这些图片呢?其实说来也简单,就像把大象放入冰箱一样,只需要三步: 1. 在drawable下准备两张图片(没有找美工要),然后在drawable下准备一个图片资源r

Winter973的博客 1961
上一篇: Android5.0_camera2Api
下一篇: Android studio快速开发工具合集
西瓜cc
博客等级 码龄12年 29粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值