Android自定义控件实现万能的对话框

 更新时间:2017年03月16日 10:59:22   作者:landptf  
这篇文章主要为大家详细介绍了Android自定义控件实现万能对话框的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

自定义控件有段时间没更新了,今天给大家带来一个新的对话框样式,本着用更少的代码实现更丰富的功能。

由于对话框对用户的操作有影响,所以目前app上的对话框用的已经比较少了,但还是有一些比较重要的信息提示需要使用对话框的样式,例如版本更新,账户异地登陆等。
下面来看自定义对话框的样式:

图1:自定义提示对话框

图2:自定义警告对话框

图3:默认提示对话框

图4:默认警告对话框

这里面带来了两种对话框的样式,也是比较常见的。以上所有的背景颜色,文字颜色,以及按钮的点击效果都是可以自定义的。

下面分别看看四种对话框是如何实现的
图1:

DialogM.Builder builder = new DialogM.Builder(DialogMActivity.this)
    .setTitle("发现新版本V5.4.1")
    .setContent("Version5.4.1\n【更新默认表情】——同步最新表情,聊天更有趣\n" +
        "【资料卡大升级】——全新视觉设计,增加陌生人来源信息\n" +
        "【消息跳动优化】——鼠标悬浮在消息列表上时顺序不动,再也不怕点错啦\n" +
        "【收藏预览升级】——完善图片浏览体验,优化网页预览效果\n" +
        "【更多体验优化】——群成员列表宽度可调;优化天气定位策略;优化图片查看器")
    .setStyle(DialogM.STYLE_TIP)
    .setPositiveButton("更新", new DialogInterface.OnClickListener() {
      @Override
      public void onClick(DialogInterface dialog, int which) {
        Toast.makeText(DialogMActivity.this, "submit", Toast.LENGTH_SHORT).show();
        dialog.dismiss();
      }
    })
    .setNegativeButton("取消", new DialogInterface.OnClickListener() {
      @Override
      public void onClick(DialogInterface dialog, int which) {
        Toast.makeText(DialogMActivity.this, "cancel", Toast.LENGTH_SHORT).show();
        dialog.dismiss();
      }
    });
builder.create().show();

图2:

DialogM.Builder builder = new DialogM.Builder(DialogMActivity.this)
    .setTitle("Hello")
    .setTitleBackColor(getResources().getColor(R.color.content))
    .setTitleTextColor(getResources().getColor(R.color.mainColor))
    .setAlertButtonBackColor(getResources().getColor(R.color.mainColor))
    .setAlertButtonTextColor(getResources().getColor(android.R.color.white))
    .setCanceledOnTouchOutside(false)
    .setAlertButton("确定", new DialogInterface.OnClickListener() {
      @Override
      public void onClick(DialogInterface dialog, int which) {
        dialog.dismiss();
      }
    })
    .setContent("landptf");
builder.create().show();

图3:

DialogM.Builder builder = new DialogM.Builder(DialogMActivity.this)
    .setContent("landptf")
    .setStyle(DialogM.STYLE_TIP)
    .setPositiveButton("submit", new DialogInterface.OnClickListener() {
      @Override
      public void onClick(DialogInterface dialog, int which) {
        Toast.makeText(DialogMActivity.this, "submit", Toast.LENGTH_SHORT).show();
        dialog.dismiss();
      }
    })
    .setNegativeButton("cancel", new DialogInterface.OnClickListener() {
      @Override
      public void onClick(DialogInterface dialog, int which) {
        Toast.makeText(DialogMActivity.this, "cancel", Toast.LENGTH_SHORT).show();
        dialog.dismiss();
      }
    });
builder.create().show();

图4:

DialogM.Builder builder = new DialogM.Builder(DialogMActivity.this)
    .setAlertButton("", new DialogInterface.OnClickListener() {
      @Override
      public void onClick(DialogInterface dialog, int which) {
        dialog.dismiss();
      }
    })
    .setContent("landptf");
builder.create().show();

图3与图4完全使用了默认的颜色,我在代码里指定了红色为主色调。

所有的操作都是通过链式调用,可以根据自己app的风格随意改变颜色。当然了你也可以把代码下载下来增加更丰富的功能。

源码比较长,有兴趣的童鞋可以点击这里查看。
源码中采用了建造者模式,可以方便链式调用,使代码看起来更简洁。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Android RecyclerView的卡顿问题的解决方法

    Android RecyclerView的卡顿问题的解决方法

    本篇文章主要介绍了Android RecyclerView的卡顿问题的解决方法,具有一定的参考价值,有兴趣的可以了解一下。
    2017-04-04
  • 详解kotlin中::双冒号的使用

    详解kotlin中::双冒号的使用

    在 Kotlin 中 , :: 双冒号操作符 的作用是获取类,对象,函数,属性的 类型对象引用,这篇文章主要介绍了详解kotlin中::双冒号的使用,需要的朋友可以参考下
    2023-04-04
  • Android来电监听和去电监听实现代码

    Android来电监听和去电监听实现代码

    本文是关于来点监听和去电监听展开问题,通过实例代码讲解,对android来电监听和去电监听的相关知识感兴趣的朋友一起看看吧
    2017-06-06
  • Android自定义柱状图表的方法实例

    Android自定义柱状图表的方法实例

    柱状图是我们在日常开发中经常会用到的一种图表,下面这篇文章主要给大家介绍了关于Android如何自定义柱状图表的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧
    2018-05-05
  • Android AIDL实现进程间通信探索

    Android AIDL实现进程间通信探索

    这篇文章主要为大家详细介绍了Android AIDL实现进程间通信的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • Android Studio 打包生成APK文件方法

    Android Studio 打包生成APK文件方法

    Android Studio是谷歌推出一个Android集成开发工具,基于IntelliJ IDEA。这篇文章主要介绍了Android Studio 打包生成APK文件方法,需要的朋友可以参考下
    2018-07-07
  • android自定义控件和自定义回调函数步骤示例

    android自定义控件和自定义回调函数步骤示例

    这篇文章主要介绍了android自定义控件步骤示例,包括为View类增加属性、响应用户消息、自定义回调函数等方法
    2014-01-01
  • Flutter实现编写富文本Text的示例代码

    Flutter实现编写富文本Text的示例代码

    这篇文章主要为大家详细介绍了如何通过Flutter实现编写富文本Text,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以参考一下
    2022-11-11
  • Android Parcelable接口使用方法详解

    Android Parcelable接口使用方法详解

    这篇文章主要介绍了 Android Parcelable接口使用方法详解的相关资料,实现Parcelable就是为了进行序列化,需要的朋友可以参考下
    2017-08-08
  • Android组件化工具ARouter使用方法详细分析

    Android组件化工具ARouter使用方法详细分析

    这篇文章主要介绍了Android组件化工具ARouter使用方法,组件化项目存在各个模块之间耦合,通信麻烦的问题,为了解决这个问题,阿里巴巴的开发者就搞出了Arouter这个框架,以解决上述问题
    2022-10-10

最新评论