package com.cooleshow.base.widgets import android.app.Dialog import android.content.Context import android.graphics.drawable.AnimationDrawable import android.os.Bundle import android.view.Gravity import android.view.View import android.widget.ImageView import android.widget.TextView import com.cooleshow.base.R import com.cooleshow.base.ext.setVisible import com.cooleshow.base.utils.LogUtils /* 加载对话框封装 */ class ProgressLoading private constructor(context: Context, theme: Int) : Dialog(context, theme) { companion object { private lateinit var mDialog: ProgressLoading private lateinit var tvLoadingText: TextView private var animDrawable: AnimationDrawable? = null /* 创建加载对话框 */ fun create(context: Context): ProgressLoading { //样式引入 mDialog = ProgressLoading(context, R.style.LightProgressDialog) //设置布局 mDialog.setContentView(R.layout.progress_dialog) mDialog.setCancelable(true) 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(R.id.iv_loading) tvLoadingText = mDialog.findViewById(R.id.tv_loading_text); animDrawable = loadingView.background as AnimationDrawable return mDialog } } /* 显示加载对话框,动画开始 */ fun showLoading() { super.show() animDrawable?.start() } fun showLoading(text:String){ super.show() LogUtils.i("pq","showLoading animDrawable:"+animDrawable); animDrawable?.start() tvLoadingText.visibility=View.VISIBLE tvLoadingText.text = text LogUtils.i("pq","showLoading text:"+text); } /* 隐藏加载对话框,动画停止 */ fun hideLoading() { super.dismiss() animDrawable?.stop() tvLoadingText.setVisible(false) } fun stopAnim() { animDrawable?.stop() } }