返回顶部
首页 > 资讯 > 后端开发 >Android自定义评分控件的完整实例
  • 505
分享到

Android自定义评分控件的完整实例

Android 2022-06-07 20:06:10 505人浏览 独家记忆
摘要

目录前言自定义参数解析参数绘制事件处理评分监听外部使用总结前言 无意中翻到几年前写过的一个RatingBar,可以拖拽,支持自定义星星图片,间距大小等参数。 自定义参数 为了

目录

前言

自定义参数

解析参数

绘制

事件处理

评分监听

外部使用

总结

前言

无意中翻到几年前写过的一个RatingBar,可以拖拽,支持自定义星星图片,间距大小等参数。

自定义参数

为了方便扩展,支持更多的样式,这里将大部分参数设置成支持外部可配置的形式。

<declare-styleable name="RatingBarPlus">
    <attr name="hideImageResource" fORMat="reference"/>
    <attr name="showImageResource" format="reference"/>
    <attr name="starSpace" format="dimension"/>
    <attr name="maxStar" format="integer"/>
    <attr name="stepSize" format="float"/>
    <attr name="rating" format="float"/>
    <attr name="starWidth" format="dimension"/>
    <attr name="starHeight" format="dimension"/>
</declare-styleable>

hideImageResource 暗星星图片id

showImageResource 亮星星图片id

starSpace 星星间距

maxStar 星星最大个数

stepSize 评分步长,即能不能选中0.1个星

rating 默认评分

starWidth 星星宽度

starHeight 星星高度

解析参数

创建星星位图的时候需要根据配置的大小和图片本身的宽高进行缩放。

绘制

绘制完成之后我们就可以动态设置评分来回显之前的评分,但是经常我们需要与控件交互,动态地设置分数,所以我们还需要重写

onTouchEvent
方法完成事件处理。

事件处理

评分需要随着手指的移动而动态变化,这里我们记录下当前手指所在的位置,如果在星星上面,就算出当前位置距离星星左边的长度占据整个星星宽度的百分比,然后根据设置的

stepSize
参数动态微调总评分。

评分监听

我们还需要将评分暴露给外部,处理主动调用getRating()方法获取之外,我们还可以提供一个监听接口,实时提供回调。

功能事件比较简单,只需要在事件处理的时候,微调总评分完成之后回调一下数据就可以了。

if (onRatinGChangeListener != null) {
    onRatingChangeListener.onRatingChange(rating);
}
外部使用
ratingBar.setOnRatingChangeListener{
    ratingText.text = "当前评分:${it}"
}
总结

到此这篇关于Android自定义评分控件的文章就介绍到这了,更多相关Android自定义评分控件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!


--结束END--

本文标题: Android自定义评分控件的完整实例

本文链接: https://lsjlt.com/news/30552.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作