Android 自定义评价Dialog(RatingBar的使用和EditText的剩余字数显示)

Android自定义星星评分控件 http://blog.youkuaiyun.com/a756213932/article/details/51939422 博客详细说明 立即下载

先看一下效果图


主要介绍一下 五角星评分控件(RatingBar) 和 EditText下方剩余字数的显示

RatingBar的使用

<RatingBar
            android:id="@+id/ratingbar"
            style="@style/MyRatingBar"                //自定义属性  下文有详细解释
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="15dp"
            android:isIndicator="false"                     //false 则可以通过触摸屏幕 改变RatingBar的进度  true则不可点击
            android:numStars="5" //总共有多少个★
            android:rating="0" //默认显示几个
            android:stepSize="0.5"> //以几个星星 为一个单位 可设置小数

</RatingBar>

在styles.xml 下设置一下RatingBar 是属性

    <style name="MyRatingBar" parent="@android:style/Widget.RatingBar">

//自定义 drawable  主要设置选中和未选中显示的小星星的颜色
        <item name="android:progressDrawable">@drawable/myratingbar</item>  

//设置星星的大小
        <item name="android:minHeight">20dip</item>
        <item name="android:maxHeight">20dip</item>
        <item name="android:isIndicator">true</item>
    </style>

自定义的drawable

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

//背景星星
<item
android:id="@+android:id/background"
android:drawable="@drawable/star0"/>

//未选中时的星星
<item
android:id="@+android:id/secondaryProgress"
android:drawable="@drawable/star0">
</item>

//选择时的⭐
<item
android:id="@+android:id/progress"
android:drawable="@drawable/star_full"/>
</layer-list>

根据选中星星的个数  动态改变后面 Textview的评价

        rBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
            @Override
            public void onRatingChanged(RatingBar ratingBar, float v, boolean b) {
                if(rBar.getRating() <= 1){
                    tv_title.setText("很差");
                }else if(rBar.getRating() <= 2){
                    tv_title.setText("差");
                }else if(rBar.getRating() <= 3){
                    tv_title.setText("一般");
                }else if(rBar.getRating() <= 4){
                    tv_title.setText("好");
                }else if(rBar.getRating() <= 5){
                    tv_title.setText("很好");
                }
            }
        });

EditText部分

简单的一个布局

    <RelativeLayout
        android:id="@+id/rl_evaluation"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginTop="3dp"
        android:background="@drawable/bg_evaluation_edittext"  //外面的矩形框
        android:orientation="vertical">
        <EditText
            android:id="@+id/et_evaluation"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="20dp"
            android:background="@null"
            android:hint="填写评价"
            android:maxLength="100"    //默认最多100个字符
            android:padding="5dp"
            android:text=""
            android:textSize="16sp" />
        <TextView
            android:id="@+id/tv_num"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:layout_marginBottom="5dp"
            android:layout_marginRight="5dp"
            android:text="剩余字数:100" 
            android:textColor="@color/gray"
            android:textSize="13sp" />
    </RelativeLayout>

对EditText进行监听 

int maxNum = 100;

et_evaluation.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {
                int num = maxNum - s.length();
                if(num>=0){
                    tv_num.setText("剩余字数:"+ (num));
                }else {
                    tv_num.setText("剩余字数:"+ 0);
                }

            }
        });

简单介绍一下 dialog

final AlertDialog dialog = new AlertDialog.Builder(this).create();
        dialog.show();

        dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);

//为了弹出软键盘
        dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
        Window win = dialog.getWindow();
        win.setContentView(R.layout.dialog_evaluation);

       定义dialog上的几个控件

对小星星  EditText 取消 和 确定按钮设置监听






Zoom AI 技术架构研究:联合式方法与多模态集成 通过 Zoom AI 开放平台,企业可以自定义 AI 模块 (如法律合规审查、客户反馈分析),扩展应用场景。这种开放平台策略使企业能够根据自身需求定制 AI 功能,满足特定业务需求。 阅读详情

相关推荐

【数据攻略】字节面试真题(含答案)+100道面试题库

数据攻略

qq_40002713的博客 4102

Android 如何时时监editText中输入的字数并在右下角显示出来

我用的是mvvm模式,其中有binding的地方都是需要找到相应的控件。

Rssqzqyp的博客 479

cartographer从入门到精通(一):cartographer介绍

Cartographer的架构图我们可以看到白色框出来的三个区域,分别是Input Sensor Data(数据输入模块)Local SLAM(局部SLAM模块)Global SLAM (background thread)(全局SLAM模块)下面我们分别介绍一下这几个模块。

weixin_68094467的博客 1051

Android Study 之分分钟让你玩转EditText右下角实时显示输入字数

LZ-Say:有时候觉得,开发真心不容易。想做一个好的开发,不仅仅会敲代码,造轮子,更多个人觉得调整心态,毕竟人和人是不一样的。。。心塞 前言今天为大家带来一个简单的小玩意,没什么技术含量,做这个的初衷是个人嫌弃UI给的设计图,另一方便是希望app能更人性化,大家可以一起来看下UI给的图。 大体一看,大家可能会说,没啥毛病啊,不就是一个输入框么?是的,如果按照我之前的想法,我个人是绝对会老老实实按照

静心 Study 4386

conda环境的复制、备份操作

请确保将 source_env 替换为你要复制的现有环境的名称,并将 target_env 替换为你要创建的新环境的名称。要备份一个Conda虚拟环境,你需要将环境的配置信息和依赖包列表保存起来,以便在需要的时候能够重新创建相同的环境。要将现有的 conda 环境复制为其他环境,可以使用 conda create 命令并克隆已存在的环境。

Dollhan的博客 3771

串口调试神器诞生记:我是如何用Cursor+AI自动生成C#上位机的(含VSCode插件清单)

本文详细介绍了如何利用Cursor和AI技术快速开发C#上位机程序,实现高效的串口通讯调试。从开发环境搭建到代码自动生成,再到性能优化和功能增强,全面展示了AI辅助开发在串口调试中的实际应用和显著效率提升。

weixin_28340315的博客 297

Android自定义星星评分控件代替RatingBar的使用

大家做android的就知道android自带的控件很丑,所以很多控件都需要自定义,例如这里说道的RatingBar控件,自带的奇丑无比,那么下面看看怎么利用自定义控件代替RatingBar控件吧,直接上个工具类,可以直接粘贴使用 import android.content.Context; import android.content.res.TypedArray; import andro

青穗的博客 5075

搞定汽车座椅电机EMC超标:一个PCB滤波板的实战设计与避坑心得

本文详细介绍了汽车座椅电机EMC超标问题的解决方案,通过PCB滤波板的实战设计,解决了传导发射测试超标问题。文章分享了在空间受限条件下的滤波电路架构设计、接地系统优化及迭代验证过程,为汽车直流电机的EMC整改提供了实用方法论。

weixin_30336061的博客 377

Android 控件 RatingBar

我们经常会看到这样一种效果,就是用5颗五角星来显示对某个产品的评价指数,如何实现的呢,Android系统自带了RatingBar,就是实现了这样一种效果:       这里我们简单介绍几个RatingBar的属性: 1.numStars:可以设置星星的个数,默认是5个 2.当前等级:progress 3.stepSize : 可以理解成每拖动一次前进的个数 4.在具体使用

IT_默 851

Python 爬虫实战:全面解析雪球网用户投资组合数据采集

本文介绍了如何使用 Python 爬虫技术,抓取雪球网用户的投资组合信息。通过模拟登录、解析页面内容等步骤,获取了用户的持仓数据。未来,可以进一步探索以下方向:

2201_76125261的博客 1303

基于深度学习的垃圾邮件识别

垃圾邮件的大量存在严重威胁着电子邮件系统的安全和效率。基于深度学习的垃圾邮件识别技术已经成为目前最有效的解决方案之一。本文将详细介绍使用深度学习技术进行垃圾邮件识别的方法,并提供相应的代码实现。 随着电子邮件的广泛应用,垃圾邮件的数量不断增加,传统的规则和统计方法已经无法满足对垃圾邮件进行准确识别的需求。深度学习技术以其强大的模式识别能力和自动特征提取能力成为解决垃圾邮件识别难题的有效工具。

一键难忘的博客 1093

推荐项目:Android五星级评价库,轻松提升用户反馈体验!

推荐项目:Android五星级评价库,轻松提升用户反馈体验! 去发现同类优质开源项目:https://gitcode.com/ 在日益竞争激烈的移动应用市场中,获取用户的正面评价是每个开发者梦寐以求的。今天,我们向您隆重推荐一个简单而强大的工具——Android五星级评价库,它能轻巧地集成到您的应用程序中,有效引导用户进行评价和问题反馈,从而优化您的应用并建立更强的用户联系。 项目介绍 Andro...

gitblog_00041的博客 533

自定义模型训练——打造专属OpenClaw模型(2026AI版)

本文介绍了OpenClaw自定义模型训练的核心流程,包括框架选择(PyTorch、TensorFlow、HuggingFace和原生OpenClaw框架)、训练环境搭建脚本、以及数据收集系统的设计。数据收集器支持从数据库、API、文件和网络等多种来源获取训练数据,并提供灵活的过滤机制确保数据质量。通过这套系统,开发者可以高效准备训练数据,为后续模型训练打下坚实基础。

博客 874

android五星菜单,Android获取星级评分的分值

码农公社 210.net.cn210= 102410月24日一个重要的节日--码农(程序员)节效果实现将布局改为LinearLayout,并通过android:orientation="vertical">设置为垂直布局,然后添加一个RatingBar,并通过android:rating="5"设置其星数为5然后再添加一个Button,分别给他们添加Id。xmlns:app="ht...

weixin_36081109的博客 459

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Android实现仿评论评分星星显示

/** * date:2021/5/26 * author:wsm(admin) * funcation:评论五角星 */ public class RatingBarView extends LinearLayout { /** * 是否可点击 */ private boolean mClickable; /** * 星星总数 */ private int starCount; /** * 星星的点击事件 .

weixin_43117800的博客 579

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Android 自定义星星可滑动评分控件

此控件通过线性布局结合ImageView来实现。具有展示分数,滑动评分功能,可设置0-10分,自行设置星星图片,是否可点击与滑动,星星间距。

LX_LE的博客 3138

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

android星星评分进度条,HUI

HUI - 星级评分组件实现步骤1、添加一个div用于放置星级图标2、使用huiStar('id选择器')初始化星级插件对象varstar1=newhuiStar('#star1');3、使用对象的draw函数绘制星级图标star1.draw();注意需要引用 hui-star.js。默认选择第N个星级//默认3星//原理:在星级外层寻找.hui-icons-star元素,在对应的星...

weixin_34603528的博客 312

在自定义Dialog中添加横向Recyclerview

Dialog dialog = new Dialog(this, R.style.Dialog); dialog.setContentView(R.layout.dialog_pitch); // 设置 recyclerview 布局方式为横 picth_rl = dialog.findViewById(R.id.pitch_rl); LinearLay...

qq_39791678的博客 1781

自定义View画五角星

package com.example.a03_five_pointed_star.fivepointedstar; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android

zhouxiaohe666的博客 663

[Android] RatingBar 基本使用

Android RatingBar 基本使用方法

csdn_lexli的博客 3167

[android]我是这样写自定义Dialog的

1、前言 #####然而就先特么扯个犊子…#####* 其实,关于android的自定义dialog网络上很多文章。我也不知道我这篇会不会特别点~ 小渣渣我只想写点个人感觉有意义的东西。 (其实也是不知道写啥啦,欢迎大家有想了解的知识点、或者想法可以私信或 者留言给本渣~ 个人感觉有意义的有兴趣的就写出来~hhhhhh ) 不扯犊子了…感觉扯犊子会被打… 2、概述百度上各种自定义对

Sunflower812 的博客 1874

activity中实现Dialog、service中实现系统级Dialog、Android源码自定义一个Dialog

activity中实现Dialog、service中实现系统级Dialog、Android源码自定义一个Dialog

fancynthia的博客 3491

星星评价控件android开发_Android自定义星星可滑动评分控件

本文实例为大家分享了Android自定义星星可滑动评分控件的具体方法,供大家参考,具体内容如下此控件通过线性布局结合ImageView来实现。具有展示分数,滑动评分功能,可设置0-10分,自行设置星星图片,是否可点击与滑动,星星间距。效果如下:需准备好下面三张图片先看自定义属性:布局文件xmlns:star="http://schemas.android.com/apk/res/com.le.st...

weixin_39610964的博客 191

Android 自定义View 绘制五角星

之前写过的App里有评分的功能,而显示评分一般使用系统的RatingBar再加自定义,一切都很完美,但是产品提了一个需求,例如4.6、4.7、5.8分,不要显示为4个星星加一个半星(4.5分),而是能显示出区别。(系统的RatingBar必须满正整数才可以满星,如果没满,还是显示一半的效果) 这时系统的RatingBar就不满足需求了,需要我们自定义控件,当时需求太赶了,需求先放下来了,既然要绘制星星,我们就从绘制单个星星开始吧,后续只要对星星做一层PorterDuffXfermode处理即可。

金戈鐡馬 825

仿各种客户端都具备的评分控件

虽然android已经有一个评分控件了,貌似应该就叫做RantingBar吧,具体也记不太清楚了,下面我们来自定义一个评分控件!先来上个效果图吧!下面,我们来看一下自定义这个评分控件的步骤吧1:看需求:首先,从上图可知,需要自定义的属性有五角星的个数,为评分时的五角星图片,评分后的五角星个数,五角星和五角星之间的距离。 2:自定义属性:<declare-styleable name="Custom

Justh 559

Android自定义小星星评分控件

替换系统默认的三种图片,需要准备三张图片,分辨对应全星(star_full)、 半星(star_half)、无星(star_empty) 替换方式是使用RatingBar的Android:progressDrawable=”@drawable/rating_yellow” 属性进行覆盖其中@drawable/rating_yellow内容如下:<?xml version="1.0" encodin

xiyangyang8110的博客 671
上一篇: Android周日历可滑动可选择日期
下一篇: RecyclerView的简单用法
ayrascal
博客等级 码龄10年 8粉丝 27原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值