Android dialog高级,Android 万能Dialog框架,  简单粗暴

本文介绍了一款自定义Dialog框架的封装过程和使用方法,旨在提供高度灵活性的同时节省开发时间。通过链式调用设置宽高、背景、圆角、动画等属性,实现任意布局的弹窗。此外,提供了详细使用示例和框架特性总结,适合快速构建个性化Dialog。
摘要由CSDN通过智能技术生成

一. 前言

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

使用系统自带的.

优点: 快速、简单、粗暴.

缺点: 比较难看, 很多属性没法改, 灵活性非常差.

使用第三方别人封装好的常见样式.

优点: 样式比系统好看, 快速, 总体比第1种好用.

缺点: 布局固定, 无法更改, 不够灵活

自定义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();

结果如下图:

4ab3462b3056

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动画《一》补间动画

@anim/dialog_alpha_show

@anim/dialog_alpha_cancel

@anim/dialog_translate_show

@anim/dialog_translate_cancel

三. 总结:

1. 扩展性强. 这个框架只是一个盒子, 里面都是空的, 喜欢放什么样的布局完全看个人喜欢, 可进行二次封装成自己喜欢的样式.

2. 使用方便. 链式调用, 属性明了, 不记得一查就可以了.

3. 学习成本低, 只需设置属性即可, 其它完全不用管

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值