一、前言
- 可能时间久了,自己常用的对话框,越来越觉得单调,所以想做一个对话框,至少可以用一段时间。
- 以前用的是自定义View来实现对话框,但觉得不太好。
- 现在我自己来实现,就用Android自带的Dialog来实现。
二、项目实现
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
- Step 2. Add the dependency
dependencies {
compile 'com.github.fingerth:FingerthAndroidUtils:1.0.3'
}
三、使用
SYSDiaLogUtils.showSuccessDialog(this, false);
- 效果图1
![效果图](https://img-blog.csdn.net/20170725210805367?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmluZ2VydGg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
SYSDiaLogUtils.showSuccessDialog(this, "操作成功", "恭喜你,操作成功了!", "OK", false);
- 效果图2
![这里写图片描述](https://img-blog.csdn.net/20170725211359347?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmluZ2VydGg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
SYSDiaLogUtils.showInfoDialog(this, "操作提示", "很抱歉,你還不夠硬氣!", "取消", false);
- 效果图3
![这里写图片描述](https://img-blog.csdn.net/20170725211423346?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmluZ2VydGg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
SYSDiaLogUtils.showErrorDialog(this, "錯誤警告", "很抱歉,你這次真的是錯了,請重新試試!", "取消", false);
- 效果图4
![这里写图片描述](https://img-blog.csdn.net/20170725211445342?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmluZ2VydGg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
SYSDiaLogUtils.showSystemProgressDialog(this, "標題", "", false, new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
Toast.makeText(MainActivity.this, "點擊消失", Toast.LENGTH_SHORT).show();
}
});
- 效果图5
![这里写图片描述](https://img-blog.csdn.net/20170725211521056?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmluZ2VydGg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
SYSDiaLogUtils.showProgressDialog(this, SYSDiaLogUtils.SYSDiaLogType.IosType, "加載中...", false, new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
Toast.makeText(MainActivity.this, "點擊消失", Toast.LENGTH_SHORT).show();
}
});
- 效果图6
![这里写图片描述](https://img-blog.csdn.net/20170725211552315?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmluZ2VydGg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
SYSDiaLogUtils.showProgressBar(this, "", "", false, new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
if (SYSDiaLogUtils.getProgressBar() < 100) {
if (asyncTaskProgress != null) {
asyncTaskProgress.cancel(true);
}
SYSDiaLogUtils.showErrorDialog(MainActivity.this, "下載失敗", "由於你取消了下載,導致下載失敗!", "確定", false);
}
}
});
asyncTaskProgress = new AsyncTaskProgress();
asyncTaskProgress.execute("");
- 效果图7
![这里写图片描述](https://img-blog.csdn.net/20170725211701813?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmluZ2VydGg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
SYSDiaLogUtils.showProgressBar(this, SYSDiaLogUtils.SYSDiaLogType.HorizontalWithNumberProgressBar, "正在加載...")
asyncTaskProgress = new AsyncTaskProgress()
asyncTaskProgress.execute("")
- 效果图8
![这里写图片描述](https://img-blog.csdn.net/20170725211729410?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmluZ2VydGg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
SYSDiaLogUtils.showProgressBar(this, SYSDiaLogUtils.SYSDiaLogType.RoundWidthNumberProgressBar, "正在加載...")
asyncTaskProgress = new AsyncTaskProgress()
asyncTaskProgress.execute("")
- 效果图9
![这里写图片描述](https://img-blog.csdn.net/20170725211752213?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmluZ2VydGg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
SYSDiaLogUtils.showConfirmDialog(this, true, SYSDiaLogUtils.SYSConfirmType.Tip, "標題", "我是提示!", new SYSDiaLogUtils.ConfirmDialogListener() {
@Override
public void onClickButton(boolean clickLeft, boolean clickRight) {
if (clickLeft) {
Toast.makeText(MainActivity.this, "left", Toast.LENGTH_SHORT).show();
} else if (clickRight) {
Toast.makeText(MainActivity.this, "right", Toast.LENGTH_SHORT).show();
}
}
});
- 效果图10
![这里写图片描述](https://img-blog.csdn.net/20170725211813148?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmluZ2VydGg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
private AsyncTaskProgress asyncTaskProgress;
private class AsyncTaskProgress extends AsyncTask<String, Integer, Object> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Object doInBackground(String... params) {
for (int i = 0; i < 100; i++) {
SystemClock.sleep(50);
publishProgress(i + 1);
}
return params;
}
@Override
protected void onProgressUpdate(Integer... values) {
SYSDiaLogUtils.setProgressBar(values[0] % 100);
if (values[0] == 100) {
SYSDiaLogUtils.dismissProgress();
SYSDiaLogUtils.showSuccessDialog(MainActivity.this, false);
}
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(Object o) {
super.onPostExecute(o);
}
}
}
四、小结一下
- 对话框,我一般都用系统提供的了,自定义bug太多,没有Google提供的稳定。
- 其实我还写了很多方法,代码很简单,入门级。