首先要说下为什么大google给我们提供的有系统RatingBar,我们还要自定义呢?
在项目中经常会用到评价类的页面,像商城、o2o类的订单都需要进行评价,那么星级评分是必不可少的。设计师们设计的漂亮的评分条如果用系统的RatingBar来实现就显得有点吃力了,因为会发现星星图标不好更改,星星之间的距离不好设定,更有甚者每个星星的大小还要不一样大,但是“懒”的设计师们只想给出正常状态和选择状态下的两张图片。当我看到同事的代码中是用5个ImageView来动态修改src的时候我都要哭了,难道星级总分有10分的时候你还要放10个ImageView吗???
于是乎我冒出个想法:我要写本书个自定义控件。
那么我们要知道需要哪些属性需要自定义,根据业务需要暂想到以下几个:
<declare-styleable name="XlHRatingBar"> <attr name="starCount" format="integer" /><!--总的星星数--> <attr name="canEdit" format="boolean" /><!--是否可以点击选择,有时候纯展示用不需要选择--> <attr name="widthAndHeight" format="dimension" /><!--单个星星的宽度-->