android实现动态显隐进度条

本文实例为大家分享了android实现动态显隐进度条的具体代码,供大家参考,具体内容如下
调用

ProgressUtil.startProgress(this, new ProgressUtil.ICallback() {@Overridepublic void progress(int count) {LogUtil.d(count + "%"); }});

ProgressUtil
package com.coral3.common_module.utils; import android.app.Activity; import android.content.Context; import android.os.Handler; import android.os.Message; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ProgressBar; import android.widget.TextView; import com.coral3.common_module.R; import java.sql.Time; import java.util.Timer; import java.util.TimerTask; public class ProgressUtil {private static View progressContainer; private static TextView tvView; private static ProgressBar progressView; private static ViewGroup contentView; private static Timer timer = new Timer(); private static TimerTask task; private static int count = 0; private static ICallback myICallback; private static Handler handler = new Handler(new Handler.Callback(){@Overridepublic boolean handleMessage(Message msg) {if(msg.what == 0x1){count++; progressView.setProgress(count); tvView.setText(count + "%"); myICallback.progress(count); }return false; }}); public static void startProgress(Context context, ICallback iCallback){if(null == contentView) contentView = ((Activity)context).findViewById(android.R.id.content); if (progressContainer == null) {progressContainer = LayoutInflater.from(context).inflate(R.layout.view_progress, null, false); progressView = progressContainer.findViewById(R.id.pb_common); tvView = progressContainer.findViewById(R.id.tv_progress); contentView.addView(progressContainer); } else {progressContainer.setVisibility(View.VISIBLE); }myICallback = iCallback; task = new TimerTask() {@Overridepublic void run() {if(count > 99){hideProgressInUiThread((Activity) context); }else{handler.sendEmptyMessage(0x1); }}}; if(timer == null) timer = new Timer(); timer.schedule(task, 10, 1000/60); }public static void endTimer(){timer.cancel(); task.cancel(); task = null; timer = null; count = 0; }public static void hideProgress(){if (progressContainer != null) {endTimer(); progressContainer.setVisibility(View.GONE); }}public static void startProgressInUiThread(Context context, ICallback iCallback){((Activity)context).runOnUiThread(new Runnable() {@Overridepublic void run() {startProgress(context, iCallback); }}); }public static void hideProgressInUiThread(Activity activity){activity.runOnUiThread(new Runnable() {@Overridepublic void run() {hideProgress(); }}); }public interface ICallback{void progress(int count); }}

view_progress.xml
【android实现动态显隐进度条】

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    推荐阅读