一个简单的点星星View(RatingBarView)
2019-07-02 本文已影响0人
Natchi
你有punchline吗?
最近项目需要做评价控件,就花了点时间写了写,只完成了我项目的基本要求,还有很多可以自己扩展的,很简单的,就可以自己实现了
自定义参数
starImageSize | 单个star的大小 |
---|---|
isClickable | 点击状态 |
showFillStarcount | 设置显示黄色star的数量 |
starEmptyDrawable | 设置显示灰色star的图片 |
starFillDrawable | 设置显示黄色star的图片 |
OnRatingListener | 点击星星监听 |
setTextList | 设置满意度文案 |
fun setTextList(textList: ArrayList<String>) {
val starLL = LinearLayout(context).apply {
orientation = LinearLayout.HORIZONTAL
ViewGroup.LayoutParams(WRAP_CONTENT, WRAP_CONTENT)
}
val viewGrouplp = LinearLayout.LayoutParams(MATCH_PARENT, WRAP_CONTENT).apply {
setMargins(0, 20, 0, 20)
}
//初始化设置黄色的star个数,怎么把下面的文字也同步到,不通过后面的setlist的操作
//解决方法,看了tablayout的源码,发现是addtab 后设置 具体统一数据
tv = TextView(context).apply {
layoutParams = viewGrouplp
gravity = Gravity.CENTER
textSize = 16f
setTextColor(ContextCompat.getColor(context, R.color.color_ffcf4b))
text = textList[showFillStarcount - 1]
}
for (i in 0 until starCount) {
if (i < showFillStarcount) { //设置初始化黄色star个数
starLL.addView(getStarImageView(context, true, starLL))
} else {
starLL.addView(getStarImageView(context, false, starLL))
}
}
addView(starLL)
addView(tv)
mTextList = textList
}
项目地址是这个,大家有兴趣的可以看看,作为安卓小开发,自定义View还是要会的,后续还会有更多的自定义View分享给大家
work life balance