StarView.kt 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package com.develop.common.widget
  2. import android.content.Context
  3. import android.util.AttributeSet
  4. import android.view.View
  5. import android.widget.LinearLayout
  6. import coil.load
  7. import com.develop.base.ext.updateText
  8. import com.develop.common.R
  9. import com.develop.common.databinding.StarViewBinding
  10. class StarView : LinearLayout {
  11. private var binding: StarViewBinding
  12. constructor(context: Context?) : super(context) {}
  13. constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) {}
  14. constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(
  15. context,
  16. attrs,
  17. defStyleAttr
  18. ) {
  19. }
  20. init {
  21. val root = View.inflate(context, R.layout.star_view, this)
  22. binding = StarViewBinding.bind(root)
  23. }
  24. fun setStarCount(count: Int) {
  25. var starCount = count
  26. if (starCount > 5 || starCount < 0) {
  27. starCount = 0
  28. }
  29. when (starCount) {
  30. 1 -> {
  31. binding.star1.load(R.drawable.ic_star_selected)
  32. }
  33. 2 -> {
  34. binding.star1.load(R.drawable.ic_star_selected)
  35. binding.star2.load(R.drawable.ic_star_selected)
  36. }
  37. 3 -> {
  38. binding.star1.load(R.drawable.ic_star_selected)
  39. binding.star2.load(R.drawable.ic_star_selected)
  40. binding.star3.load(R.drawable.ic_star_selected)
  41. }
  42. 4 -> {
  43. binding.star1.load(R.drawable.ic_star_selected)
  44. binding.star2.load(R.drawable.ic_star_selected)
  45. binding.star3.load(R.drawable.ic_star_selected)
  46. binding.star4.load(R.drawable.ic_star_selected)
  47. }
  48. 5 -> {
  49. binding.star1.load(R.drawable.ic_star_selected)
  50. binding.star2.load(R.drawable.ic_star_selected)
  51. binding.star3.load(R.drawable.ic_star_selected)
  52. binding.star4.load(R.drawable.ic_star_selected)
  53. binding.star5.load(R.drawable.ic_star_selected)
  54. }
  55. }
  56. }
  57. fun setCommentNumber(number: String) {
  58. binding.tvNumber.updateText("(${number})")
  59. }
  60. fun setCommentTextColorGray() {
  61. binding.tvNumber.setTextColor(resources.getColor(R.color.color_A3A3A2))
  62. }
  63. }