直接上代码 :这个自定义的Dialog通过简单的单例模式,实现在各个页面的调用
import android.content.Context;
import android.graphics.Color;
import android.view.Gravity;
import android.widget.Toast;
import com.flyco.animation.BaseAnimatorSet;
import com.flyco.animation.BounceEnter.BounceTopEnter;
import com.flyco.animation.SlideExit.SlideBottomExit;
import com.flyco.dialog.listener.OnBtnLeftClickL;
import com.flyco.dialog.listener.OnBtnRightClickL;
import com.flyco.dialog.listener.OnOperItemClickL;
import com.flyco.dialog.widget.ActionSheetDialog;
import com.flyco.dialog.widget.MaterialDialog;
import com.flyco.dialog.widget.NormalDialog;
import com.flyco.dialog.widget.NormalListDialog;
import java.util.List;
import java.util.Objects;
/**
* Created by yangyuqi on 2015/12/3.
* 对话框
*/
public class DialogView {
private static DialogView mView;
private NormalDialog mDialog;
private MaterialDialog materialDialog;
private static NormalListDialog listDialog;
private static ActionSheetDialog sheetDialog;
private Context mContext;
private BaseAnimatorSet bas_in;
private BaseAnimatorSet bas_out;
public DialogView(Context context)
{
mContext = context;
mDialog = new NormalDialog(mContext);
materialDialog = new MaterialDialog(mContext);
bas_in = new BounceTopEnter();
bas_out = new SlideBottomExit();
}
public static DialogView getInstance(Context context)
{
if (mView==null)
{
synchronized (DialogView.class)
{
if (mView == null)
mView = new DialogView(context);
}
}
return mView;
}
private void _ShowNormalDialog(String title, String content, int type, OnBtnLeftClickL onBtnLeftClickL, OnBtnRightClickL onBtnRightClickL)
{
if (type==1) {
mDialog.content(content).title(title).contentGravity(Gravity.CENTER).dividerColor(Color.parseColor("#222222")).dismissAnim(bas_out).showAnim(bas_in).
show();
}else {
mDialog.content(content).title(title).style(NormalDialog.STYLE_TWO).contentGravity(Gravity.CENTER).dividerColor(Color.parseColor("#222222")).dismissAnim(bas_out).showAnim(bas_in).
show();
}
mDialog.setOnBtnLeftClickL(onBtnLeftClickL);
mDialog.setOnBtnRightClickL(onBtnRightClickL);
}
/**
* NormalDialog的离开程序
* @param onBtnLeftClickL
* @param onBtnRightClickL
*/
private void _ShowNormalDialogExit(OnBtnLeftClickL onBtnLeftClickL,OnBtnRightClickL onBtnRightClickL)
{
mDialog.isTitleShow(false)//
.bgColor(Color.parseColor("#383838"))//
.cornerRadius(5)//
.content("是否确定退出程序?")//
.contentGravity(Gravity.CENTER)//
.contentTextColor(Color.parseColor("#ffffff"))//
.dividerColor(Color.parseColor("#222222"))//
.btnTextSize(15.5f, 15.5f)//
.btnTextColor(Color.parseColor("#ffffff"), Color.parseColor("#ffffff"))//
.btnColorPress(Color.parseColor("#2B2B2B"))//
.widthScale(0.85f)//
.showAnim(bas_in)//
.dismissAnim(bas_out)//
.show();
mDialog.setOnBtnLeftClickL(onBtnLeftClickL);
mDialog.setOnBtnRightClickL(onBtnRightClickL);
}
private void _ShowMaterialDialog(String title, String content, int btnNum, String[] btnName, OnBtnLeftClickL leftClickL, OnBtnRightClickL rightClickL) {
materialDialog.btnText(btnName[0], btnName[1]).content(content)
.showAnim(bas_in)//
.dismissAnim(bas_out)//
.show();
materialDialog.setCanceledOnTouchOutside(false);
materialDialog.setOnBtnLeftClickL(leftClickL);
materialDialog.setOnBtnRightClickL(rightClickL);
}
/**
* 静态显示ListDialog
* @param context
* @param list 可string【】,adapter,menuItem
* @param operItemClickL
*/
public static void _ShowNormalListDialog(Context context, String[] list, OnOperItemClickL operItemClickL)
{
listDialog = new NormalListDialog(context,list);
listDialog.title("请选择").layoutAnimation(null).show();
listDialog.setOnOperItemClickL(operItemClickL);
}
public static void _ShowActionSheetDialog(Context context,String title,String [] list,OnOperItemClickL operItemClickL)
{
sheetDialog = new ActionSheetDialog(context,list,null);
sheetDialog.title(title)//
.titleTextSize_SP(14.5f)//
.show();
sheetDialog .setOnOperItemClickL(operItemClickL);
}
/**
* NormalDialog的离开程序
* @param context 上下文
* @param onBtnLeftClickL 左按钮
* @param onBtnRightClickL 右按钮
*/
public static void ShowNormalDialogExit(Context context ,OnBtnLeftClickL onBtnLeftClickL,OnBtnRightClickL onBtnRightClickL)
{
getInstance(context)._ShowNormalDialogExit(onBtnLeftClickL, onBtnRightClickL);
}
/**
* NormalDialog的常用对话框
* @param context 上下文
* @param title 标题
* @param content 内容
* @param type 对话框的类型
* @param onBtnLeftClickL 左点击
* @param onBtnRightClickL 右点击
*/
public static void ShowNormalDialogTip(Context context ,String title,String content,int type,OnBtnLeftClickL onBtnLeftClickL,OnBtnRightClickL onBtnRightClickL)
{
getInstance(context)._ShowNormalDialog(title, content, type, onBtnLeftClickL, onBtnRightClickL);
}
// public static void ShowNormalListDialog(Context context,List<Object> list,OnOperItemClickL operItemClickL){
// getInstance(context)._ShowNormalListDialog(context,list,operItemClickL);
// }
public static void ShowMaterialDialog(Context context,String title,String content,int btnNum,String[] btnName,OnBtnLeftClickL leftClickL,OnBtnRightClickL rightClickL)
{
getInstance(context)._ShowMaterialDialog(title, content, btnNum, btnName, leftClickL, rightClickL);
}
public void dismissNormalDialog()
{
mDialog.dismiss();
}
public void dismissMaterialDialog()
{
materialDialog.dismiss();
}
}