ProgressLoading.kt 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package com.cooleshow.base.widgets
  2. import android.app.Dialog
  3. import android.content.Context
  4. import android.graphics.drawable.AnimationDrawable
  5. import android.os.Bundle
  6. import android.view.Gravity
  7. import android.view.View
  8. import android.widget.ImageView
  9. import android.widget.TextView
  10. import com.cooleshow.base.R
  11. import com.cooleshow.base.ext.setVisible
  12. import com.cooleshow.base.utils.LogUtils
  13. /*
  14. 加载对话框封装
  15. */
  16. class ProgressLoading private constructor(context: Context, theme: Int) : Dialog(context, theme) {
  17. companion object {
  18. private lateinit var mDialog: ProgressLoading
  19. private lateinit var tvLoadingText: TextView
  20. private var animDrawable: AnimationDrawable? = null
  21. /*
  22. 创建加载对话框
  23. */
  24. fun create(context: Context): ProgressLoading {
  25. //样式引入
  26. mDialog = ProgressLoading(context, R.style.LightProgressDialog)
  27. //设置布局
  28. mDialog.setContentView(R.layout.progress_dialog)
  29. mDialog.setCancelable(true)
  30. mDialog.setCanceledOnTouchOutside(false)
  31. mDialog.window?.attributes?.gravity = Gravity.CENTER
  32. val lp = mDialog.window?.attributes
  33. lp?.dimAmount = 0.2f
  34. //设置属性
  35. mDialog.window?.attributes = lp
  36. //获取动画视图
  37. val loadingView = mDialog.findViewById<ImageView>(R.id.iv_loading)
  38. tvLoadingText = mDialog.findViewById<TextView>(R.id.tv_loading_text);
  39. animDrawable = loadingView.background as AnimationDrawable
  40. return mDialog
  41. }
  42. }
  43. /*
  44. 显示加载对话框,动画开始
  45. */
  46. fun showLoading() {
  47. super.show()
  48. animDrawable?.start()
  49. }
  50. fun showLoading(text:String){
  51. super.show()
  52. LogUtils.i("pq","showLoading animDrawable:"+animDrawable);
  53. animDrawable?.start()
  54. tvLoadingText.visibility=View.VISIBLE
  55. tvLoadingText.text = text
  56. LogUtils.i("pq","showLoading text:"+text);
  57. }
  58. /*
  59. 隐藏加载对话框,动画停止
  60. */
  61. fun hideLoading() {
  62. super.dismiss()
  63. animDrawable?.stop()
  64. tvLoadingText.setVisible(false)
  65. }
  66. fun stopAnim() {
  67. animDrawable?.stop()
  68. }
  69. }