Android自定义Rating Bar

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

Android自定义Rating Bar

一、效果图

在这里插入图片描述

二、代码实现

package com.example.layoutdemo.widget;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;

import androidx.annotation.Nullable;

import com.example.layoutdemo.R;


public class RatingBar extends View {
    private Bitmap mNormalStar;
    private Bitmap mSelectedStar;
    private int mCurrentStep = 0;
    private static final int NUM = 5;
    public RatingBar(Context context) {
        this(context,null);
    }

    public RatingBar(Context context, @Nullable AttributeSet attrs) {
        this(context,attrs,0);
    }

    public RatingBar(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        mNormalStar = BitmapFactory.decodeResource(context.getResources(), R.mipmap.star_normal);
        mSelectedStar = BitmapFactory.decodeResource(context.getResources(),R.mipmap.star_selected);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        setMeasuredDimension(mNormalStar.getWidth() * NUM,mNormalStar.getHeight());
    }

    @Override
    protected void onDraw(Canvas canvas) {
       for (int i = 0;i <= NUM;i++) {
           if (mCurrentStep > i) {
               canvas.drawBitmap(mSelectedStar,i * mSelectedStar.getWidth(),0,null);
           } else {
               canvas.drawBitmap(mNormalStar,i * mNormalStar.getWidth(),0,null);
           }

       }
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                Log.d("TAG","MotionEvent.ACTION_DOWN");
            case MotionEvent.ACTION_MOVE:
                int currentStep  = (int)(event.getX()/mNormalStar.getWidth() + 1);
                Log.d("TAG","currentStep:" + currentStep);
                if (currentStep < 0) {
                    mCurrentStep = 0;
                }
                if (currentStep >NUM) {
                    mCurrentStep = NUM;
                }
                if (currentStep == mCurrentStep) {
                    return true;
                }
                mCurrentStep = currentStep;
                invalidate();
                break;
            case MotionEvent.ACTION_UP:
                Log.d("TAG","MotionEvent.ACTION_UP");
                break;
        }
        return true;
    }
}

三、使用控件

<com.example.layoutdemo.widget.RatingBar
        android:layout_marginStart="20dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

四、源码下载地址

Android自定义View

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

相关推荐

android自定义RatingBar显示效果

准备好你要作为 RatingBar 星星的自定义图标,可以是两个不同状态的图标,一个用于选中状态(比如 star_filled.png),另一个用于未选中状态(比如 star_empty.png)。在 res/values/styles.xml 文件中定义自定义样式:</</在这个样式中,我们引用了之前创建的 LayerDrawable 文件,并设置了 RatingBar 的高度。<RatingBar。

FDoubleman的博客 811

2024年Android RatingBar的基本使用和自定义样式,字节跳动面试官

希望本文对你有所启发,有任何面试上的建议也欢迎留言分享给大家。好了,今天的分享就到这里,如果你对在面试中遇到的问题,或者刚毕业及工作几年迷茫不知道该如何准备面试并突破现状提升自己,对于自己的未来还不够了解不知道给如何规划,来看看同行们都是如何突破现状,怎么学习的,来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。好了~如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。

2401_84556681的博客 981

Android自定义Ratingbar星星实现评分

最近写项目用到了Ratingbar,由于Android自带的Ratingbar可以改变星星的颜色,但是无法设置间距,所以我们自定义了Ratingbar,上传到这和大家分享,交流学习

自定义android Rating bar

1、在res/data/style.xml文件中定义种样式: parent="@android:style/Widget.RatingBar.Small"> name="android:progressDrawable"> @drawable/myratingbar 36dip 36dip   2.在res/drawab

cj6585256的专栏 2427

android之RatingBar控件用法详解

下面小编就为大家带来一篇android之RatingBar控件用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

UE5入门第二周总结:基于蓝图的国际象棋的实现

在C++的学习中,这是一个入门级别的项目。我们的目标是灵活运用蓝图的特性和强大的可视化功能,做出这一入门级项目的同时,思考如何优化并改进算法,并尽可能的用面向对象的方法实现,用蓝图中的继承和多态简化编码过程。

YoungeYang的博客 1260

Android更换RatingBar图片

转自:http://www.iteye.com/topic/689272 RatingBar是我们在系统显示分数的好组件,但是我们一般想把RatingBar装饰的更好看,想把更好看的图片用来替换系统默认的图片,系统默认的样子是这样的:    下图是个不错的选择哦:    想要实现如上效果,首先我们在styles.xml写入一个样式:  Xml代码   xml

obmeflbj的专栏 1254

切比雪夫插值

切比雪夫插值是一种基于切比雪夫节点的多项式插值方法,其优势是减少插值误差(特别是龙格现象:表现为高维插值时在边缘处插值误差骤增)。本文对其基本操作进行说明。

平和少年的博客 1647

Android自定义RatingBar

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

西瓜cc Blog 681

Burp靶场实战:JWT签名绕过漏洞分析与利用

本文通过Burp Suite靶场实战,深入剖析了JWT签名绕过漏洞的多种攻击手法,包括签名未验证、alg:none攻击、弱密钥爆破、JWK/JKU头注入、KID路径遍历及算法混淆攻击。文章详细演示了利用过程,并提供了关键的防御指南,帮助开发和安全人员加固JWT实现,确保认证安全。

weixin_29325515的博客 598

立创星火计划:基于STM32H743VIH6的Maverick_H743_MK1.0高性能开源飞控硬件全解析

本文详细解析了基于STM32H743VIH6核心的Maverick_H743_MK1.0高性能开源飞控硬件设计。重点阐述了采用双IMU冗余设计、高精度气压计、多路独立电源管理以及丰富接口(如CAN总线)的考量,旨在为穿越机、科研无人机等平台提供强大、可靠的飞行控制解决方案。

weixin_28787801的博客 200

自定义RatingBar

在用原来的样式不满足项目要求的时候怎么办?自定义把,android基本上所有的控件都可以自定义。 下面是系统自带的RatingBar 下面是需要的效果: 布局文件这样: <RatingBar android:id="@+id/rb_rateNum" style="@style/star_rating_bar_style" andro

让创意的火花散落到屏幕的每一个dp 4264

破解现代反爬虫:JS加密、OB混淆与CSS反爬的实战攻防分析

摘要: 随着反爬技术的升级,JS加密、OB混淆和CSS反爬成为主流防护手段,阻碍传统爬虫获取数据。本文解析了这些技术的工作原理,并提出破解策略:通过模拟浏览器(如Selenium、Puppeteer)执行动态JS,逆向混淆代码,以及利用开发者工具突破CSS隐藏。针对复杂防护,开发者需结合技术分析与工具应用,如API接口抓取、动态渲染破解等,以应对不断演进的反爬机制。未来,爬虫攻防将持续升级,需保持技术敏锐性。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1650

多智能体潜在通信检测:从原理到工程实践

在多智能体系统(Multi-Agent System)中,智能体间的协作与通信是实现复杂任务的关键。传统的显式通信依赖于预定义协议,而基于深度学习的智能体则发展出更高效的潜在通信(Latent Communication)方式,即通过模型内部隐藏层的向量直接交换信息。这种通信虽提升了效率,却因其隐蔽性带来了安全与可解释性挑战,智能体可能形成未预期的隐蔽协调(Covert Coordination)。从技术原理看,检测此类协调的核心在于分析宏观行为模式与微观模型状态的异常关联,例如通过计算动作序列的互信息或监

weixin_34342905的博客 638

全新YOLO26有效涨点改进专栏目录 | 本专栏持续更新500+篇内容 | 包含各种卷积、主干网络、各种注意力机制、检测头、损失函数、小目标检测改进、二次创新模块、独家创新等几百种创新点改进

🔥《2026年YOLO26改进专栏》🔥 🚀持续更新500+最前沿创新改进点(顶会顶刊论文/独家创新策略),涵盖主干网络、各种卷积、注意力机制、检测头等模块,助力科研论文发表与模型性能提升,支持检测/分割/分类任务。订阅即获完整可运行项目,提供专业QQ答疑群,适合科研发论文(SCI/CCF/核心)及工业应用(PCB/医学/遥感检测)。专栏价格将逐步上涨,早订更优惠! ⭐特色:非计算机专业友好、模块可自由组合、全网独家创新;📌适用:研究生大论文和小论文创新、小目标检测、多领域科研应用,满足不同研究需求。

Ai缝合怪、助力小伙伴高效发论文 5156

YOLO26训练教程,训练自己的数据集教学,从源码下载,配置虚拟环境,准备数据集、训练、验证、推理测试 。实现0到1的完整教学过程。快速入门必看

本文详细介绍了YOLO26目标检测模型的配置与使用流程:1)下载YOLOv11源码并创建Python3.10虚拟环境;2)安装PyTorch2.5.1及相关依赖库;3)准备数据集并修改配置文件;4)编写训练脚本设置参数(640x640分辨率、500轮次);5)验证模型效果;6)使用训练好的模型进行推理测试;7)生成可视化热力图。整个过程涵盖了从环境搭建到模型应用的全流程,并提供了清华镜像源加速下载。

Ai缝合怪、助力小伙伴高效发论文 5290

RatingBar的自定义效果

RatingBar的自定义效果 有时候android系统提供给我们的ratingbar效果并不达到我们的要求,这个时候就可以自定义自己喜欢的ratingbar。 从上面的效果可以看出,自定义这样的组件,需要两张图片: 。一张用来未选择的效果,一张用来显示的效果。那还要中间那种一半是未选择一半时选择的呢?其实当你写好这样的组件后,系统就会自动帮你自动解析生成那种效果。 来看一下代码:

Alexzhang369学习总结空间 495

Linux系统安装部署Redis完整教程(图文详解)

最近需要在Linux服务器安装部署Redis,参考了网上很多的文章,比较零碎,所以我自己写了一篇完整的Redis安装部署文档,在部署Redis之前重装了我的华为服务器,就是为了给大家一步步阐述我的操作过程,配合图文进行讲解更加通俗易懂!

黄团团的个人博客 6693

Android中RatingBar的自定义总结

本篇基于Android系统默认的RatingBar进行美化 1.先上个效果图 2.配置文件中的代码: <RatingBar android:id="@+id/room_ratingbar" style="@style/roomRatingBar" android:layout_width="wrap_content" android:layout...

weixin_34415923的博客 102

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Android自定义RatingBar(评分控件)

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

weixin_34236869的博客 216

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Android RatingBar 评星控件的自定义大小和样式

下面讲一下Android开发中的自定义RatingBar 在Android的开发软件中自带RatingBar 评星控件  但是它只有两个模式  一个大的模式一个小的模式   不管大小它都是固定的  不能达到开发人的要求  所以下面介绍一下怎么自定义RatingBar 首先  选择你的两种图片  一个选中式的  一个为选中式的 第二步  为星星设置选中和为选中的状态 在res/drawab

song的博客 7409

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

android开发教程:Android更换RatingBar图片

麦子学院的android老师给你我们讲android更哈unratingbar图片时说到RatingBar是我们在系统显示分数的好组件,但是我们一般想把RatingBar装饰的更好看,想把更好看的图片用来替换系统默认的图片,系统默认的样子是这样的:    下图是个不错的选择哦:    想要实现如上效果,首先我们在styles.xml写入一个样式:  Xml代码   1.  ve

maizi123_00的博客 658

android rating bar style

请看原文:http://kozyr.zydako.net/2010/05/23/pretty-ratingbar/ Android is a great development platform. Numerous built-in components and widgets simplify developer’s life greatly, and Intents are just a

学无止境 2131

RatingBar

1、嵌套类    接口:RatingBar.OnRatingBarChangeListener   一个回调函数,当星级进度改变时修改客户端的星级。 2、XML属性               属性名称 描述 android:isIndicator RatingBar是否是一个指示器(用户无法进行更改) an

Android 1597

设置RatingBar的图片

1. 资源 android_ratingbar_single_light.png  android_ratingbar_single.png  2. 设置状态 yellow_star_rating_bar_full.xml xml version="1.0" encoding= "utf-8"?> layer-list   xmlns:android= "ht

shaofei的记事本 1239

麦子学院android开发笔记:Android更换RatingBar图片

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33805557的博客 203
上一篇: Android不同形状切换
下一篇: Android 自定义View实现26个字母滑动索引
libodev
博客等级 码龄14年 2粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值