WeighDialog.kt 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package xn.hxp.weidith
  2. import android.app.Dialog
  3. import android.content.Context
  4. import android.graphics.Color
  5. import android.graphics.drawable.ColorDrawable
  6. import android.os.Bundle
  7. import android.os.Handler
  8. import android.os.Looper
  9. import android.view.Gravity
  10. import android.view.MotionEvent
  11. import android.view.Window
  12. import android.view.WindowManager
  13. import android.widget.EditText
  14. import android.widget.ImageView
  15. import android.widget.TextView
  16. import androidx.lifecycle.lifecycleScope
  17. import com.bumptech.glide.Glide
  18. import com.bumptech.glide.load.engine.DiskCacheStrategy
  19. import com.bumptech.glide.request.RequestOptions
  20. import xn.hxp.R
  21. import com.blankj.utilcode.util.LogUtils
  22. import com.rc.httpcore.HttpConfig
  23. import xn.hxp.app.ChemicalApp
  24. //称重弹框
  25. class WeighDialog(
  26. private val ct: Context,
  27. private var density: String,
  28. private var lint: IViewLint
  29. ) : Dialog(ct) {
  30. init {
  31. requestWindowFeature(Window.FEATURE_NO_TITLE)
  32. setContentView(R.layout.weigh_dialog)
  33. window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
  34. window?.setGravity(Gravity.CENTER)
  35. window?.setLayout(
  36. WindowManager.LayoutParams.MATCH_PARENT,
  37. WindowManager.LayoutParams.WRAP_CONTENT
  38. )
  39. }
  40. private var mHandler: Handler = Handler(Looper.getMainLooper())
  41. override fun onCreate(savedInstanceState: Bundle?) {
  42. super.onCreate(savedInstanceState)
  43. if (ChemicalApp.confs!!.weighHintPicture!=null){
  44. LogUtils.i("======称重示意图:${HttpConfig.API_BASE_IMG_URL}${ChemicalApp.confs!!.weighHintPicture}")
  45. val findViewById = findViewById<ImageView>(R.id.imgView)
  46. // 使用 Glide 加载网络图片
  47. Glide.with(ct)
  48. .load("${HttpConfig.API_BASE_IMG_URL}${ChemicalApp.confs!!.weighHintPicture}")
  49. .apply(RequestOptions.diskCacheStrategyOf(DiskCacheStrategy.AUTOMATIC))
  50. .into(findViewById)
  51. }
  52. findViewById<TextView>(R.id.density).text = "$density"
  53. var weighingValue = findViewById<EditText>(R.id.weigh)
  54. weighingValue.isEnabled = false //禁止输入 需要链接蓝牙称
  55. findViewById<ImageView>(R.id.imgType).setOnClickListener {
  56. //手动输入
  57. weighingValue.isEnabled = true //禁止链接蓝牙称
  58. lint.onMovement()
  59. }
  60. lint.weighingView(weighingValue)
  61. val tvClose = findViewById<TextView>(R.id.tvClose)
  62. tvClose.setOnClickListener {
  63. dismiss()
  64. lint.viewCloses()
  65. }
  66. mHandler.postDelayed({
  67. dismiss()
  68. }, 1000 * 60) // 15秒后关闭对话框
  69. }
  70. interface IViewLint {
  71. fun weighingView(weighingValue: EditText)
  72. fun viewCloses()
  73. fun onMovement() //手动输入 手动编辑 进行输入 需要断开蓝牙称
  74. fun onTimerReply() //重置万层计时器 防止未操作完成就返回页面
  75. }
  76. override fun onStop() {
  77. super.onStop()
  78. LogUtils.i("========已经调用1")
  79. mHandler.removeCallbacksAndMessages(null)
  80. }
  81. }