在开源基础上扩展功能
获取触摸事件的位置(x,y)
android之View坐标系(view获取自身坐标的方法和点击事件中坐标的获取)_weijinqian0的博客-CSDN博客
//评分控件的地址
val starView = helper.getView<RatingStarView>(R.id.starView)
starView.setRating(1.5f)
starView.setOnTouchListener { view, motionEvent ->
val w = view.width
val sx = motionEvent.x
// println("${sx} ${w}----------dfasdfad-----${(sx / w)*5}")
var rat = (sx / w) * 5
val ratss = rat.toString().split(".")
if ("0.${ratss[1]}".strToFloat() > 0.7f) {
rat = ratss[0].strToFloat() + 1.0f
} else if ("0.${ratss[1]}".strToFloat() < 0.3f) {
rat = ratss[0].strToFloat()
}
starView.setRating(rat)
true
}
该文章介绍了如何在Android中基于开源RatingStarView组件监听触摸事件,计算触摸点相对于星星视图的位置,并根据位置调整评分。通过OnTouchListener,将触点的x坐标转换为评分值,如果触点位于星星的一半以上则增加评分,否则保持或减少评分。

269

被折叠的 条评论
为什么被折叠?



