Android 自定义ProgressDialog示例实现

闲来无事,总结了两个自定义的ProgressDialog,大家可以参考下,根据自己需要进行选择修改:

实现效果:

示例1:

示例2:

代码如下:

MainActivity:只是两个Button点击事件

package com.customwaitdialog;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity implements OnClickListener {private Button btn_customDialog1;private Button btn_customDialog2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();}private void initView() {btn_customDialog1 = (Button) findViewById(R.id.btn_customDialog1);btn_customDialog2 = (Button) findViewById(R.id.btn_customDialog2);btn_customDialog1.setOnClickListener(this);btn_customDialog2.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {// 示例1case R.id.btn_customDialog1:Intent intent1 = new Intent(this, DialogActivity1.class);startActivity(intent1);break;// 示例2case R.id.btn_customDialog2:Intent intent2 = new Intent(this, DialogActivity2.class);startActivity(intent2);break;default:break;}}}示例1DialogActivity1:

package com.customwaitdialog;import android.app.Activity;import android.os.AsyncTask;import android.os.Bundle;import com.dialogutil.CustomWaitDialog1;public class DialogActivity1 extends Activity {private MainFrameTask mMainFrameTask = null;private CustomWaitDialog1 progressDialog = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity1);mMainFrameTask = new MainFrameTask(this);mMainFrameTask.execute();}@Overrideprotected void onDestroy() {stopProgressDialog();if (mMainFrameTask != null && !mMainFrameTask.isCancelled()) {mMainFrameTask.cancel(true);}super.onDestroy();}private void startProgressDialog() {if (progressDialog == null) {progressDialog = CustomWaitDialog1.createDialog(this);progressDialog.setMessage("正在加载中…");}progressDialog.show();}private void stopProgressDialog() {if (progressDialog != null) {progressDialog.dismiss();progressDialog = null;}}public class MainFrameTask extends AsyncTask<Integer, String, Integer> {private DialogActivity1 mainFrame = null;public MainFrameTask(DialogActivity1 mainFrame) {this.mainFrame = mainFrame;}@Overrideprotected void onCancelled() {stopProgressDialog();super.onCancelled();}@Overrideprotected Integer doInBackground(Integer… params) {try {Thread.sleep(10 * 1000);} catch (InterruptedException e) {e.printStackTrace();}return null;}@Overrideprotected void onPreExecute() {startProgressDialog();}@Overrideprotected void onPostExecute(Integer result) {stopProgressDialog();}}}

重点来了CustomWaitDialog1:

package com.dialogutil;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.customwaitdialog.R;public class CustomWaitDialog1 extends Dialog {private Context context = null;private static CustomWaitDialog1 customProgressDialog = null;public CustomWaitDialog1(Context context) {super(context);this.context = context;}public CustomWaitDialog1(Context context, int theme) {super(context, theme);}public static CustomWaitDialog1 createDialog(Context context) {customProgressDialog = new CustomWaitDialog1(context,R.style.CustomProgressDialog);customProgressDialog.setCanceledOnTouchOutside(false);customProgressDialog.setContentView(R.layout.customprogressdialog);customProgressDialog.getWindow().getAttributes().gravity = Gravity.CENTER;return customProgressDialog;}public void onWindowFocusChanged(boolean hasFocus) {if (customProgressDialog == null) {return;}ImageView imageView = (ImageView) customProgressDialog.findViewById(R.id.loadingImageView);AnimationDrawable animationDrawable = (AnimationDrawable) imageView.getBackground();animationDrawable.start();}public CustomWaitDialog1 setTitile(String strTitle){return customProgressDialog;}public CustomWaitDialog1 setMessage(String strMessage){TextView tvMsg = (TextView)customProgressDialog.findViewById(R.id.id_tv_loadingmsg);if (tvMsg != null){tvMsg.setText(strMessage);}return customProgressDialog;} }

后来逐渐有广州花城的,

Android 自定义ProgressDialog示例实现

相关文章:

你感兴趣的文章:

标签云: