# Android-CustomRatingBar **Repository Path**: ryantech/Android-CustomRatingBar ## Basic Information - **Project Name**: Android-CustomRatingBar - **Description**: 一个自定义的RatingBar - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2016-04-08 - **Last Updated**: 2020-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #Android-CustomRatingBar #自定义的星形组件 --- ## 项目相关 - 平台:Android - 语言:java and xml - 目前版本:1.0 ### 前言 --- 因为项目中用到了评分系统,而系统自带的RatingBar功能看似完整,但大小定义太过困难,所以考虑自定义view


## 截图 --- ![layout](https://b6kk3w.bn1303.livefilestore.com/y3mwprYwIaG95BSlv1QElIYWkzH7feAoYVB1mDV226lRerdjKuWP5Ijwe9sysN5-DglMglx0w0v0zWF2m3O5LRhYH8iJovE81NRejxpD1mkIMwzZYPVgbMg2zADathTXWiW80UZVubc84dyfKjnlWGU1Ckmoah__tJejbEpb9g7cr8/layout-2016-03-19-222225.png?psid=1) ###技术选型 --- 自定义View有继承View和ViewGroup的差别 星形可以使用Path绘制,但太过繁琐,且一般星形都是设计师的切图,随时可能发生变化,所以考虑继承ViewGroup来实现 而继承系统控件和ViewGroup各有优劣,ViewGroup相对轻量级一些,而继承LinearLayout也可以实现,这里我选用的是ViewGroup,因为系统控件中有很多系统级属性,这些属性如果被使用,则不能保证考虑周全 ###自定义属性 ## 使用 --- ### xml文件 --- ### java核心代码 --- mRb.setOnStarChangeListener(this); @Override public void onStarChange(CustomRatingBar ratingBar, float star) { Log.d("MainActivity", "star:" + star); } ## 后记 在写完项目后,我也发现了一些其他类似的项目,继承自LinearLayout的项目,可惜是使用imageView的onclick事件实现,目测无法拖动改变星星的数量 后续会考虑将项目上传jcenter/mavencenter ## 相关 - [email](mailto:cjl_spy@163.com?subject=RatingBar-Feedback) - 欢迎fork - 欢迎指正 - 欢迎提bug