1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- package com.cooleshow.base.widgets
- import android.app.Dialog
- import android.content.Context
- import android.graphics.drawable.AnimationDrawable
- import android.view.Gravity
- import android.widget.ImageView
- import android.widget.TextView
- import com.cooleshow.base.R
- import com.cooleshow.base.utils.LogUtils
- import com.cooleshow.base.utils.UiUtils
- import kotlinx.coroutines.Dispatchers
- import kotlinx.coroutines.GlobalScope
- import kotlinx.coroutines.launch
- import kotlinx.coroutines.withContext
- /**
- * 上传进度条
- */
- class UploadProgressLoading private constructor(context: Context, theme: Int) :
- Dialog(context, theme) {
- companion object {
- private lateinit var mDialog: UploadProgressLoading
- private var animDrawable: AnimationDrawable? = null
- private var tvProgress: TextView? = null;
- /*
- 创建加载对话框
- */
- fun create(context: Context): UploadProgressLoading {
- LogUtils.i("pq", "thread:" + Thread.currentThread().name);
- //样式引入
- mDialog = UploadProgressLoading(context, R.style.LightProgressDialog)
- //设置布局
- mDialog.setContentView(R.layout.upload_progress_dialog)
- mDialog.setCancelable(false)
- mDialog.setCanceledOnTouchOutside(false)
- mDialog.window?.attributes?.gravity = Gravity.CENTER
- val lp = mDialog.window?.attributes
- lp?.dimAmount = 0.2f
- //设置属性
- mDialog.window?.attributes = lp
- //获取动画视图
- val loadingView = mDialog.findViewById<ImageView>(R.id.iv_loading)
- tvProgress = mDialog.findViewById<TextView>(R.id.tv_progress)
- animDrawable = loadingView.background as AnimationDrawable
- return mDialog
- }
- }
- fun setProgress(progress: Double) {
- GlobalScope.launch(Dispatchers.Main) {
- tvProgress?.let {
- var result: String = UiUtils.convertDouble(progress);
- tvProgress?.text = "$result%"
- }
- }
- }
- fun setProgress(progress: Double, tip: String) {
- GlobalScope.launch(Dispatchers.Main) {
- tvProgress?.let {
- var result: String = UiUtils.convertDouble(progress);
- tvProgress?.text = "$tip$result%"
- }
- }
- }
- /*
- 显示加载对话框,动画开始
- */
- fun showLoading() {
- GlobalScope.launch(Dispatchers.Main) {
- super.show()
- animDrawable?.start()
- }
- }
- /*
- 隐藏加载对话框,动画停止
- */
- fun hideLoading() {
- GlobalScope.launch(Dispatchers.Main) {
- super.dismiss()
- animDrawable?.stop()
- }
- }
- fun stopAnim() {
- animDrawable?.stop()
- }
- }
|