Android开发教程实战案例源码分享-点击五个星评分效果
有时用到对app评分功能,会用到五星好评
一、思路:
用5个ImageView,点击第几个进行处理
二、效果图:
三、关键代码:
class MainActivity : AppCompatActivity() {
private lateinit var ivChatScoreStart1:ImageView
private lateinit var ivChatScoreStart2:ImageView
private lateinit var ivChatScoreStart3:ImageView
private lateinit var ivChatScoreStart4:ImageView
private lateinit var ivChatScoreStart5:ImageView
private lateinit var tvChatScore:TextView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
ivChatScoreStart1 = findViewById(R.id.iv_chat_score_start1)
ivChatScoreStart2 = findViewById(R.id.iv_chat_score_start2)
ivChatScoreStart3 = findViewById(R.id.iv_chat_score_start3)
ivChatScoreStart4 = findViewById(R.id.iv_chat_score_start4)
ivChatScoreStart5 = findViewById(R.id.iv_chat_score_start5)
tvChatScore = findViewById(R.id.tv_chat_score)
ivChatScoreStart1.setOnClickListener {
ivChatScoreStart1.isSelected = if (ivChatScoreStart2.isSelected){
true
} else {
!ivChatScoreStart1.isSelected
}
if (ivChatScoreStart1.isSelected){
tvChatScore.setText(R.string.chat_score_start_1)
} else {
tvChatScore.setText(R.string.chat_score_no_select_tip2)
}
ivChatScoreStart2.isSelected = false
ivChatScoreStart3.isSelected = false
ivChatScoreStart4.isSelected = false
ivChatScoreStart5.isSelected = false
}
ivChatScoreStart2.setOnClickListener {
ivChatScoreStart2.isSelected = if (ivChatScoreStart3.isSelected){
true
} else {
!ivChatScoreStart2.isSelected
}
if (ivChatScoreStart2.isSelected){
ivChatScoreStart1.isSelected = true
tvChatScore.setText(R.string.chat_score_start_2)
} else {
tvChatScore.setText(R.string.chat_score_start_1)
}
ivChatScoreStart3.isSelected = false
ivChatScoreStart4.isSelected = false
ivChatScoreStart5.isSelected = false
}
ivChatScoreStart3.setOnClickListener {
ivChatScoreStart3.isSelected = if (ivChatScoreStart4.isSelected){
true
} else {
!ivChatScoreStart3.isSelected
}
if (ivChatScoreStart3.isSelected){
ivChatScoreStart1.isSelected = true
ivChatScoreStart2.isSelected = true
tvChatScore.setText(R.string.chat_score_start_3)
} else {
tvChatScore.setText(R.string.chat_score_start_2)
}
ivChatScoreStart4.isSelected = false
ivChatScoreStart5.isSelected = false
}
ivChatScoreStart4.setOnClickListener {
ivChatScoreStart4.isSelected = if (ivChatScoreStart5.isSelected){
true
} else {
!ivChatScoreStart4.isSelected
}
if (ivChatScoreStart4.isSelected){
ivChatScoreStart1.isSelected = true
ivChatScoreStart2.isSelected = true
ivChatScoreStart3.isSelected = true
tvChatScore.setText(R.string.chat_score_start_4)
} else {
tvChatScore.setText(R.string.chat_score_start_3)
}
ivChatScoreStart5.isSelected = false
}
ivChatScoreStart5.setOnClickListener {
ivChatScoreStart5.isSelected = !ivChatScoreStart5.isSelected
if (ivChatScoreStart5.isSelected){
ivChatScoreStart1.isSelected = true
ivChatScoreStart2.isSelected = true
ivChatScoreStart3.isSelected = true
ivChatScoreStart4.isSelected = true
tvChatScore.setText(R.string.chat_score_start_5)
} else {
tvChatScore.setText(R.string.chat_score_start_4)
}
}
}
}
四、项目demo源码图:
有问题或者需要完整源码demo的可以看简介联系我,也可以私信我,我每天都看私信的