因为项目需要,所以写了一个圆角对话框库,可以自定义圆角半径,view和按钮显示等内容。

1.效果截图

新版本更新:

1.增加RCDHTextOption进行更丰富的文本控件属性配置 2.增加对话框setCancelable属性设置 3.增加对话框入场出场动画、大小设置 4.优化项目框架,提供代理类配置 5.解耦代码逻辑,优化处理效果

2.添加依赖

1.Add it in your root build.gradle at the end of repositories:

 allprojects {repositories {...maven { url 'https://www.jitpack.io' }}}
复制代码

2.Add the dependency

dependencies {implementation 'com.github.MingYueChunQiu:RoundCornerDialogHelper:0.2.2'}
复制代码

3.项目使用

1.配置属性

    private float leftTopCornerRadius;//左上圆角半径private float rightTopCornerRadius;//右上圆角半径private float leftBottomCornerRadius;//左下圆角半径private float rightBottomCornerRadius;//右下圆角半径private float cornerRadius;//圆角半径private int bgColor = Color.WHITE;//背景颜色(默认为白色)private Drawable bgDrawable;//背景图片private String titleText;//标题文本private int titleTextColor;//标题文本颜色private int titleTextSize;//标题文本大小private int titlePadding;//标题内边距private int titleTextAppearance;//标题文本样式(默认先使用样式,单独设置的颜色大小会覆盖掉样式中内容)private int titleBgColor;//标题背景颜色private int titleGravity;//标题对齐方式private String contentText;//内容文本private int contentTextColor;//内容文本颜色private int contentTextSize;//内容文本大熊啊private int contentPadding;//内容内边距private int contentTextAppearance;//内容文本样式(默认先使用样式,单独设置的颜色大小会覆盖掉样式中内容)private int contentBgColor;//内容背景颜色private int contentGravity;//内容文本对齐方式private String leftButtonText;//左边按钮文本private int leftButtonTextColor;//左边按钮文本颜色private int leftButtonTextSize;//左边按钮文本大小private int leftButtonPadding;//左边按钮内边距private int leftButtonTextAppearance;//左边按钮文本样式(默认先使用样式,单独设置的颜色大小会覆盖掉样式中内容)private int leftButtonBgColor;//左边按钮背景颜色private int leftButtonGravity;//左边按钮对齐方式private String middleButtonText;//中间按钮文本private int middleButtonTextColor;//中间按钮文本颜色private int middleButtonTextSize;//中间按钮文本大小private int middleButtonPadding;//中间按钮内边距private int middleButtonTextAppearance;//中间按钮文本样式(默认先使用样式,单独设置的颜色大小会覆盖掉样式中内容)private int middleButtonBgColor;//中间按钮背景颜色private int middleButtonGravity;//中间按钮对齐方式private String rightButtonText;//右边按钮文本private int rightButtonTextColor;//右边按钮文本颜色private int rightButtonTextSize;//右边按钮文本大小private int rightButtonPadding;//右边按钮内边距private int rightButtonTextAppearance;//右边按钮文本样式(默认先使用样式,单独设置的颜色大小会覆盖掉样式中内容)private int rightButtonBgColor;//右边按钮背景颜色private int rightButtonGravity;//右边按钮对齐方式private boolean isTitleVisible = true;//标题是否可见private boolean isContentVisible = true;//内容是否可见private RCDHTextOption titleTextOption;//标题文本配置项(推荐,默认先使用,单独设置的属性会覆盖TextOption)private RCDHTextOption contentTextOption;//内容文本配置项(推荐,默认先使用,单独设置的属性会覆盖TextOption)private RCDHTextOption leftButtonTextOption;//左边按钮文本配置项(推荐,默认先使用,单独设置的属性会覆盖TextOption)private RCDHTextOption middleButtonTextOption;//中间按钮文本配置项(推荐,默认先使用,单独设置的属性会覆盖TextOption)private RCDHTextOption rightButtonTextOption;//右边按钮文本配置项(推荐,默认先使用,单独设置的属性会覆盖TextOption)private CustomViewable customViewable;//自定义显示viewprivate CustomButtonContainerViewable customButtonContainerView;//自定义按钮容器类//点击左边按钮监听器,设置监听器后按钮才会显示private OnRCDHClickLeftButtonListener onRCDHClickLeftButtonListener;//点击中间按钮监听器,设置监听器后按钮才会显示private OnRCDHClickMiddleButtonListener onRCDHClickMiddleButtonListener;//点击右边按钮监听器,设置监听器后按钮才会显示private OnRCDHClickRightButtonListener onRCDHClickRightButtonListener;private int width;//对话框宽private int height;//对话框高private boolean isCancelable = true;//标记是否可以外部点击取消对话框private int windowAnimationStyleResId;//窗口动画样式private RCDHOptionDelegateable delegate;//配置信息处理的代理类
复制代码

2.文本配置信息类

private int gravity;//对齐方式private int topMargin;//上外边距private int bottomMargin;//下外边距private int leftMargin;//左外边距private int rightMargin;//右外边距private int margin;//外边距(其余外边距失效)private int topPadding;//上内边距private int bottomPadding;//下内边距private int leftPadding;//左内边距private int rightPadding;//右内边距private int padding;//内边距(其余内边距失效)private String text;//文本private int textColor;//文本颜色private int textSize;//文本大小private int textAppearanceResId;//文本样式资源ID(先设置样式,单独设置的颜色大小会覆盖掉样式中内容)
复制代码

3.创建对话框

RoundCornerDialogFragment fragment = RoundCornerDialogFragment.newInstance();
fragment.show(getSupportFragmentManager(), RoundCornerDialogFragment.class.getSimpleName());
复制代码

4.设置各项配置信息

RCDHTextOption textOption = new RCDHTextOption.Builder().setTextColor(Color.RED).setGravity(Gravity.RIGHT).setTextSize(20).build();RoundCornerDialogHelperOption option = new RoundCornerDialogHelperOption.Builder().setCornerRadius(20).setBgColor(Color.RED).setTitleTextSize(24).setTitlePadding(30).setTitleTextAppearance(R.style.AppCompatTextView_BOLD_ITALIC).setTitleBgColor(Color.GRAY).setContentBgColor(Color.GREEN).setLeftButtonTextColor(Color.GREEN).setLeftButtonBgColor(Color.BLUE).setRightButtonTextOption(textOption).setRightButtonTextColor(Color.BLACK).setWidth(getResources().getDisplayMetrics().widthPixels).setHeight(getResources().getDisplayMetrics().heightPixels).setCancelable(false).setWindowAnimationStyleResId(R.style.Dialog_Animation).setOnRCDHClickLeftButtonListener(new OnRCDHClickLeftButtonListener() {@Overridepublic void onClickLeftButton(RoundCornerDialogFragment fragment, TextView v) {Toast.makeText(MainActivity.this, "左边", Toast.LENGTH_SHORT).show();}}).setOnRCDHClickRightButtonListener(new OnRCDHClickRightButtonListener() {@Overridepublic void onClickRightButton(RoundCornerDialogFragment fragment, TextView v) {Toast.makeText(MainActivity.this, "右边", Toast.LENGTH_SHORT).show();}}).build();RoundCornerDialogFragment fragment = RoundCornerDialogFragment.newInstance(option);fragment.show(getSupportFragmentManager(), RoundCornerDialogFragment.class.getSimpleName());
复制代码

4.总结

具体的项目框架可以到GitHub上查看,github.com/MingYueChun… ,码云地址:gitee.com/MingYueChun… ,如果有任何意见或建议,欢迎反馈,觉得可以的话,帮忙点个star,谢谢!

仿IOS圆角可自定义扩展对话框相关推荐

  1. Android仿IOS滑动关机-自定义view系列(6)

    Android仿IOS滑动关机-自定义view系列 功能简介 GIf演示 主要实现步骤-具体内容看github项目里的代码 Android技术生活交流 更多其他页面-自定义View-实用功能合集:点击 ...

  2. Android安卓仿IOS音量调节-自定义view系列(4)

    Android安卓仿IOS音量调节-自定义view系列 功能简介 主要实现步骤 xml相关属性设置 java代码 Android技术生活交流 更多其他页面-自定义View-实用功能合集:点击查看 Gi ...

  3. android 高仿ios开关,Android自定义view仿IOS开关效果

    本文主要讲解如何在 Android 下实现高仿 iOS 的开关按钮,并非是在 Android 自带的 ToggleButton 上修改,而是使用 API 提供的 onDraw.onMeasure.Ca ...

  4. android输入框圆形,GitHub - mylhyl/Android-CircleDialog: 仿IOS圆角对话框、进度条、列表框、输入框,ad广告框,支持横竖屏切换...

    Android-CircleDialog 基于DialogFragment封装,已封装的对话框类型有,常规对话框.列表框.输入框.进度框: 每个对话框类型也支持自定义边框圆角.背景透明度.字体大小与色 ...

  5. Android 打造自己的个性化应用(四):仿墨迹天气实现--自定义扩展名的zip格式的皮肤...

    在这里谈一下墨迹天气的换肤实现方式,不过首先声明我只是通过反编译以及参考了一些网上其他资料的方式推测出的换肤原理, 在这里只供参考. 若大家有更好的方式, 欢迎交流. 墨迹天气下载的皮肤就是一个zip ...

  6. 仿ios桌面vivo_vivo精仿ios11主题包专属版下载-vivo精仿ios11主题包自定义版v2.9.9安卓版-007游戏网...

    vivo精仿ios11主题包自定义版,这是一款非常热门的安卓仿ios的主题应用软件,这款软件提供最新最全的ios11所有的主题应用和壁纸,还有各种图标免费使用,让你体验安卓和苹果并存的感觉,喜欢的话就 ...

  7. Android高仿IOS和QQ的弹出对话框

    我们知道Android中其实并不提供圆形的东西,像Button,TextView,EditView等等都是没有弧形元素在里面(看看这些控件的属性就知道了).而很多时候我们的程序中又需要用到这样有弧形元 ...

  8. Android仿IOS解锁密码界面-自定义view系列(6)

    Android仿IOS解锁密码界面-自定义view系列 功能简介 主要实现步骤-具体内容看github项目里的代码 xml相关属性设置 Android Studio 代码 Android技术生活交流 ...

  9. android 仿ios三级联动,仿iOS的PickerView控件,有时间选择和选项选择并支持一二三级联动效果...

    Android-PickerView 注意事项.详请使用方式.更新日志等,请查看 Wiki文档 Wiki文档,Wiki文档,Wiki文档 !~ 重要的事情说三遍 对于使用上有任何疑问或优化建议等,欢迎 ...

  10. ​Xamarin iOS教程之自定义视图

    ​Xamarin iOS教程之自定义视图 Xamarin iOS自定义视图 工具栏中的视图在实际应用开发中用的很多,但是为了吸引用户的眼球,开发者可以做出一些自定义的视图. [示例2-33]以下将实现 ...

最新文章

  1. 无线通信界的3大天王,谁能驾驭百亿台IoT设备?
  2. 第2篇 C#数据类型-值类型与引用类型
  3. python打开电脑摄像头_Python调用摄像头
  4. Webserver管理系列:11、注意默认的隐含共享
  5. java工程师有什么要求_什么是java,java工程师应该具备哪些能力?
  6. php 批量删除cookie,php批量删除cookie的简单实现方法
  7. 修改Windows远程登录端口号
  8. 2020下半年python二级考试时间_2020年下半年计算机等级考试报名通知
  9. 一篇故事讲述了计算机网络里的基本概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
  10. ap计算机科学课程内容,AP计算机科学课程补习有哪些知识点梳理?
  11. python numpy读取数据_大神教你python 读取文件并把矩阵转成numpy的两种方法
  12. 信号发送函数sigqueue和信号安装函数sigaction
  13. [转]Terraform 使用 - 从最简单例子开始
  14. java ArrayList扩容入门
  15. Leetcode: Reorder List Summary: Reverse a LinkedList
  16. Win10第二天开机后默认的pdf阅读器被自动修改成Microsoft Edge,三种解决办法(第三种办法适合本机情况,摸索半个月)
  17. Spatial Pyramid Pooling
  18. centos安装中文字体
  19. Centos 7.7下Oracle 11g RAC
  20. 四、【入门篇】官方LIB库、位带操作

热门文章

  1. Python控制语句执行流程
  2. The seventeenth day
  3. System.Timers.Timer(定时器)
  4. [python]pytest实现WEB UI自动化
  5. 2017-本命年总结
  6. CS224n笔记11 GRU和NMT的进一步话题
  7. Lazarus Coolbar and AnchroDocking
  8. Redis配置文件解读
  9. C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(十七) 完美精灵之八面玲珑(WPF Only)①...
  10. bzoj千题计划196:bzoj4826: [Hnoi2017]影魔