简单常用对话框的封装

直接上代码 :这个自定义的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();
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
带有各种动画效果的弹出对话框控件。你也可以自定义样式及弹出动画。效果非常棒,且使用简单。项目地址:https://github.com/H07000223/FlycoDialog_Master 效果图:        依赖的库文件:   FlycoAnimation_Lib   FlycoDialog_Lib   nineoldandroids这三个库文件都可以使用jar包:FlycoAnimation_Lib-v1.0.0.jarFlycoDialog_Lib-v1.0.0.jarnineoldandroids-2.4.0.jar  但是目前生成的jar包与源文件不一致,建议还是想我demo中那样使用源文件或者你自己生成jar包如何使用一个最简单的使用:final NormalDialog dialog = new NormalDialog(context);//创建对话框实例 dialog.content("是否确定退出程序?")//设置对话框内容                 .showAnim(bas_in)//设置弹出动画                 .dismissAnim(bas_out)//设置关闭动画                 .show(); dialog.setOnBtnClickL(//设置按钮监听                 new OnBtnClickL() {                     @Override                     public void onBtnClick() {                         T.showShort(context, "left");                         dialog.dismiss();                     }                 },                 new OnBtnClickL() {                     @Override                     public void onBtnClick() {                         T.showShort(context, "right");                         dialog.dismiss();                     }                 });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值