Android 万能Dialog框架,  简单粗暴----V1.0系列说明

github地址: https://github.com/liys666666/LDialog

最新版说明:https://www.jianshu.com/p/4ab3462b3056

一. 前言

为什么要封装这个框架呢? 我们目前自定义Dialog的常见方式有:

  1. 使用系统自带的.
    优点: 快速、简单、粗暴.
    缺点: 比较难看, 很多属性没法改, 灵活性非常差.
  2. 使用第三方别人封装好的常见样式.
    优点: 样式比系统好看, 快速, 总体比第1种好用.
    缺点: 布局固定, 无法更改, 不够灵活
  3. 自定义CustomDialog 继承 Dialog, 然后在CustomDialog加载自己的布局, 封装自己的属性.
    优点: 灵活性非常高, 任何弹窗都可以实现.
    缺点: 写CustomDialog 比较麻烦, 时间上远超前面两种方式, 代码复用性不够强.

为了能自定义各种dialog, 又能把节约时间, 所以就出了这个框架

二. 使用方法

1. 导入项目
//项目根目录下 build.gradle
allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' } //添加
        }
    }
dependencies {
     implementation 'com.github.liys666666:LDialog:V1.0.4'  //添加
}
2.所有属性
LDialog dialog = new LDialog(this, R.layout.dialog_confirm).with(); //你的布局
        dialog
                .setMaskValue(0.5f) //遮罩--透明度
                //1.设置宽
                .setWidth() //单位:dp
                .setWidthPX() //单位:px
                .setWidthRatio(0.8) //占屏幕宽比例

                //2.设置高
                .setHeight() //单位:dp
                .setHeightPX() //单位:px
                .setHeightRatio() //占屏幕高比例

                //3.设置背景
                .setBgColor(Color.WHITE) //背景颜色
                .setBgColorRes(R.color.white) //res资源
                .setBgRadius() //圆角, 单位:dp
                .setBgRadiusPX() //圆角, 单位:px

                //4.设置弹框位置 和 动画(显示和隐藏动画)
                .setGravity(Gravity.TOP | Gravity.BOTTOM) //设置弹框位置
                .setGravity(Gravity.LEFT, 0, 0) //设置弹框位置(偏移量)
                .setAnimationsStyle(R.style.dialog_translate) //设置动画

                //5.设置具体布局
                //5.1 常见系统View属性
                .setText(R.id.tv_title, "确定")
                .setTextColor()
                .setBackgroundColor()
                .setBackgroundRes()
                .setImageBitmap()
                .setVisible()
                .setGone()
                //5.2 其它属性
                .setCancelBtn(R.id.tv_cancel) //设置按钮,弹框消失的按钮
                .setOnClickListener(new LDialog.DialogOnClickListener() { //设置按钮监听
                    @Override
                    public void onClick(View v, LDialog customDialog) {
                        customDialog.dismiss();
                    }
                }, R.id.tv_confirm, R.id.tv_cancel)  //可以传多个
                .show(); //显示
3. 使用说明

①. 简单使用(主要布局属性)
步骤1: new对象, 加载你的布局
步骤2: with初始化
步骤3: 设置控件的属性
步骤4: show()
如果有额外需求, 可用dialog.getView(viewId)获取对应的控件, 随便怎么设置都可以

LDialog dialog = new LDialog(this, R.layout.dialog_confirm); //设置你的布局
dialog.with()
                //设置布局控件的各种属性
                .setText(R.id.tv_content, "确定要退出登录吗?")
                .setCancelBtn(R.id.tv_cancel) //点击对应按钮, dialog会消失(可选)
                .setOnClickListener(new LDialog.DialogOnClickListener() { //设置监听
                    @Override
                    public void onClick(View v, LDialog lDialog) { //可以根据viewId判断
                        lDialog.dismiss();
                    }
                }, R.id.tv_confirm, R.id.tv_content) //可以设多控件
                .show();

结果如下图:


dialog.png

②. dialog本身的属性:

dialog.with()
                //1.设置宽
                .setWidth() //单位:dp
                .setWidthPX() //单位:px
                .setWidthRatio(0.8) //占屏幕宽比例

                //2.设置高
                .setHeight() //单位:dp
                .setHeightPX() //单位:px
                .setHeightRatio() //占屏幕高比例

                //3.设置背景
                .setBgColor(Color.WHITE) //背景颜色
                .setBgColorRes(R.color.white) //res资源
                .setBgRadius() //圆角, 单位:dp
                .setBgRadiusPX() //圆角, 单位:px

                //4.设置弹框位置 和 动画(显示和隐藏动画)
                .setGravity(Gravity.TOP | Gravity.BOTTOM) //设置弹框位置
                .setGravity(Gravity.LEFT, 0, 0) //设置弹框位置(偏移量)
                .setAnimationsStyle(R.style.dialog_translate) //设置动画

说明: 对于动画属性, setAnimationsStyle, 需要在res/values/styles.xml 设置, 动画属性参考: android动画《一》补间动画

    <style name="dialog_alpha" parent="android:Animation">
        <item name="android:windowEnterAnimation">@anim/dialog_alpha_show</item>  <!--显示动画-->
        <item name="android:windowExitAnimation">@anim/dialog_alpha_cancel</item> <!--消失动画-->
    </style>

    <style name="dialog_translate" parent="android:Animation">
        <item name="android:windowEnterAnimation">@anim/dialog_translate_show</item>  <!--显示动画-->
        <item name="android:windowExitAnimation">@anim/dialog_translate_cancel</item> <!--消失动画-->
    </style>

三. 总结:

1. 扩展性强. 这个框架只是一个盒子, 里面都是空的, 喜欢放什么样的布局完全看个人喜欢, 可进行二次封装成自己喜欢的样式.
2. 使用方便. 链式调用, 属性明了, 不记得一查就可以了.
3. 学习成本低, 只需设置属性即可, 其它完全不用管

到这里就结束了, 如有疑问或建议, 可在评论区留言, 如果这个框架对你有帮助, 欢迎star收藏.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容