Android 评分控件AndroidRatingStar,扩张半分功能

该文章介绍了如何在Android中基于开源RatingStarView组件监听触摸事件,计算触摸点相对于星星视图的位置,并根据位置调整评分。通过OnTouchListener,将触点的x坐标转换为评分值,如果触点位于星星的一半以上则增加评分,否则保持或减少评分。
摘要由CSDN通过智能技术生成

在开源基础上扩展功能

获取触摸事件的位置(x,y)

android之View坐标系(view获取自身坐标的方法和点击事件中坐标的获取)_weijinqian0的博客-CSDN博客

//评分控件的地址

GitHub - everhad/AndroidRatingStar: RatingStar is specific RatingBar use star drawable as the progress mark.

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


        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值