一、概述
通用Dialog膏秫,適用于ProgressDialog右遭,BuilderDialog,可以設(shè)置字體缤削、進(jìn)入退出動(dòng)畫窘哈。
二、版本
OkDialog已上傳jcenter亭敢,直接在gradle中添加依賴即可滚婉。
compile 'com.hengda.zwf:OkDialog:0.0.1'
三、效果
1帅刀、ProgressDialog補(bǔ)間動(dòng)畫
2让腹、ProgressDialog幀動(dòng)畫
3远剩、BuilderDialog默認(rèn)布局
4、BuilderDialog自定義布局
四骇窍、使用
此處以BuilderDialog自定義布局為例瓜晤,簡(jiǎn)單介紹說(shuō)使用,具體用法參見(jiàn)demo腹纳。
地址:https://github.com/Tailyou/OkDialog
/**
* 該方法通過(guò)提取文字參數(shù)和點(diǎn)擊事件可以繼續(xù)封裝
*
* @author 祝文飛(Tailyou)
* @time 2017/2/6 9:37
*/
private void showCustomDlg() {
HDialogBuilder hDialogBuilder = new HDialogBuilder(mContext);
View customView = View.inflate(mContext, R.layout.dialog_custom_view_all, null);
TextView tvTitle = HdTool.getView(customView, R.id.tvTitle);
TextView tvMsg = HdTool.getView(customView, R.id.tvMsg);
TextView btnYes = HdTool.getView(customView, R.id.btnYes);
TextView btnNo = HdTool.getView(customView, R.id.btnNo);
tvTitle.setText("注銷");
tvMsg.setText("退出賬號(hào)可能會(huì)使連續(xù)登錄記錄歸零痢掠,確定退出?");
btnYes.setText("確定退出");
btnNo.setText("取消");
btnYes.setOnClickListener(v -> hDialogBuilder.dismiss());
btnNo.setOnClickListener(v -> hDialogBuilder.dismiss());
hDialogBuilder.setCustomView(customView)
.dlgColor(Color.TRANSPARENT)
.cancelable(false)
.show();
}
封裝后:
private void showCustomDlg(String title, String msg, String txtYes, String txtNo,
DialogClickListener dialogClickListener) {
hDialogBuilder = new HDialogBuilder(mContext);
View customView = View.inflate(mContext, R.layout.dialog_custom_view_all, null);
TextView tvTitle = HdTool.getView(customView, R.id.tvTitle);
TextView tvMsg = HdTool.getView(customView, R.id.tvMsg);
TextView btnYes = HdTool.getView(customView, R.id.btnYes);
TextView btnNo = HdTool.getView(customView, R.id.btnNo);
tvTitle.setText(title);
tvMsg.setText(msg);
btnYes.setText(txtYes);
btnNo.setText(txtNo);
btnYes.setOnClickListener(v -> dialogClickListener.p());
btnNo.setOnClickListener(v -> dialogClickListener.n());
hDialogBuilder.setCustomView(customView)
.dlgColor(Color.TRANSPARENT)
.cancelable(false)
.show();
}
封裝好之后嘲恍,可以寫到工具類中供直接調(diào)用.
/**
* 作者:Tailyou (祝文飛)
* 時(shí)間:2016/5/26 19:03
* 郵箱:tailyou@163.com
* 描述:Dialog工具類
*/
public class DialogCenter {
private static HDialogBuilder hDialogBuilder;
/**
* 封裝好的方法可以寫到DialogCenter工具類中足画,供直接調(diào)用
*
* @author 祝文飛(Tailyou)
* @time 2017/2/6 9:39
*/
public static void showCustomDlg(Context mContext, String title, String msg, String txtYes, String txtNo,
DialogClickListener dialogClickListener) {
hideDialog();
hDialogBuilder = new HDialogBuilder(mContext);
View customView = View.inflate(mContext, R.layout.dialog_custom_view_all, null);
TextView tvTitle = HdTool.getView(customView, R.id.tvTitle);
TextView tvMsg = HdTool.getView(customView, R.id.tvMsg);
TextView btnYes = HdTool.getView(customView, R.id.btnYes);
TextView btnNo = HdTool.getView(customView, R.id.btnNo);
tvTitle.setText(title);
tvMsg.setText(msg);
btnYes.setText(txtYes);
btnNo.setText(txtNo);
btnYes.setOnClickListener(v -> dialogClickListener.p());
btnNo.setOnClickListener(v -> dialogClickListener.n());
hDialogBuilder.setCustomView(customView)
.dlgColor(Color.TRANSPARENT)
.cancelable(false)
.show();
}
/**
* 隱藏Dialog
*/
public static void hideDialog() {
if (hDialogBuilder != null) {
hDialogBuilder.dismiss();
hDialogBuilder = null;
}
}
}