CountDownActivity.kt 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package com.xunao.effectdemo.activity
  2. import android.app.Activity
  3. import android.os.Build
  4. import android.os.Bundle
  5. import android.os.Handler
  6. import android.os.Message
  7. import androidx.annotation.RequiresApi
  8. import com.xuexiang.xui.widget.progress.HorizontalProgressView.LINEAR_INTERPOLATOR
  9. import com.xunao.effectdemo.R
  10. import kotlinx.android.synthetic.main.activity_count_down.*
  11. /**
  12. * author : 程中强
  13. * e-mail : 740479946@qq.com
  14. * date : 2022/8/1815:10
  15. * desc :
  16. * version: 1.0
  17. */
  18. class CountDownActivity: Activity() {
  19. val handler = object: Handler(){
  20. @RequiresApi(Build.VERSION_CODES.M)
  21. override fun handleMessage(msg: Message) {
  22. super.handleMessage(msg)
  23. when (msg.what) {
  24. 101 -> {
  25. hpv_language.progress = 100*currentProgress/allProgress.toFloat()
  26. dial_progress.setValue(currentProgress/10.toFloat())
  27. if (currentProgress == 50){
  28. hpv_language.setEndColor(getColor(R.color.xui_config_color_red))
  29. hpv_language.setStartColor(getColor(R.color.xui_config_color_red))
  30. dial_progress.setProgressColor( getColor(R.color.xui_config_color_red))
  31. }
  32. }
  33. }
  34. }
  35. }
  36. var allProgress =100
  37. var currentProgress =100
  38. var isLoop = true
  39. override fun onCreate(savedInstanceState: Bundle?) {
  40. super.onCreate(savedInstanceState)
  41. setContentView(R.layout.activity_count_down)
  42. hpv_language.setEndProgress(10f)
  43. hpv_language.setAnimateType(LINEAR_INTERPOLATOR)
  44. btn_start.setOnClickListener{v->
  45. isLoop = true
  46. // handler.removeCallbacks(run)
  47. Thread(run).start()
  48. }
  49. }
  50. private val run = Runnable {
  51. try {
  52. while (isLoop) {
  53. if (currentProgress <= 0) {
  54. currentProgress = allProgress
  55. isLoop = false
  56. }
  57. Thread.sleep(100)
  58. currentProgress--;
  59. handler.sendEmptyMessage(101)
  60. }
  61. } catch (e: InterruptedException) {
  62. e.printStackTrace()
  63. }
  64. }
  65. }