关闭
2016-04-24 10:55 152人阅读 评论(0) 收藏 举报

版权声明:本文为博主原创文章,未经博主允许不得转载。

其实在14年谷歌就推出了全新的设计语言Material Design,这种设计语言旨在为手机、平板电脑、台式机和“其他平台”提供更一致、更广泛的“外观和感觉”。简单来说,就是一种扁平化的设置语言,我们都知道在以前Android讲 究的是拟物化,比如,系统一些内置的应用,我们看到图标就知道它是干什么的,这样设计是为了防止用户,见到这个应用不知道是做什么的,但是随着发展,我们 对手机的使用程度已经不需要这些外在的提示去引导我们。所以谷歌推出了Material Design,它注重的是效果的展示和用户体验,支持各种新动画效果,具有内置的实时UI阴影,以及可在不同屏幕之间切换的hero元素。就好像微软的 win8,win10一样,给人一种简约风。

好吧,又有点跑题了~,步入正题 了,我们都知道Material Design是基于5.0的,但是在5.0以前系统默认的Dialog真的是丑爆了。今天在github上看到一个MD风格的Dialog的三方库,跟大 家分享一下,感觉使用起来还比较方便,效果还不错,与app风格进行兼容比较容易。

我用的IDE是android studio,下面我就简单介绍一下怎么使用。

首先,我们需要现对这个三方库依赖

  1. dependencies {
  2. compile 'me.drakeet.materialdialog:library:1.3.1'
  3. }

假如你是eclipse的话,只能自己想办法导入jar包了,( ▼-▼ )。

下面是我封装的一个工具类,大家可以在导入这个三方库成功后直接使用。

  1. package com.personal.xiaoshuai.mddialog;
  2.  
  3. import android.content.Context;
  4. import android.view.View;
  5.  
  6. import me.drakeet.materialdialog.MaterialDialog;
  7.  
  8. /**
  9. * Created by zhangs on 2016/4/24.
  10. */
  11. public class DialogUtils {
  12.  
  13. public static abstract class OnButtonClickListener{
  14. public abstract void onConfirmButtonClick();
  15. public void onCancelButtonClick(){
  16.  
  17. }
  18. }
  19.  
  20. /**
  21. * 只显示一个按钮调用这个方法
  22. * @param context
  23. * @param message
  24. * @param positiveText
  25. * @param onButtonClickListener
  26. */
  27. public static void showSingleButtonDialog(Context context, String message,String positiveText,OnButtonClickListener onButtonClickListener) {
  28. showCustomMessageDialog(context,message,null,positiveText,onButtonClickListener);
  29. }
  30.  
  31. public static void showNormalDialog(Context context, String message, final OnButtonClickListener onButtonClickListener){
  32. showCustomMessageDialog(context,message,"取消","确定",onButtonClickListener);
  33. }
  34.  
  35. public static void showCustomMessageDialog(Context context, String message,String negativeText,String positiveText, final OnButtonClickListener onButtonClickListener){
  36. showCustomMessageDialog(context,"提示",message,negativeText,positiveText,onButtonClickListener);
  37. }
  38. public static void showCustomMessageDialog(Context context, String title,String message,String negativeText,String positiveText, final OnButtonClickListener onButtonClickListener){
  39. final MaterialDialog mMaterialDialog = new MaterialDialog(context);
  40. mMaterialDialog.setTitle(title)
  41. .setMessage(message)
  42. .setPositiveButton(positiveText, new View.OnClickListener() {
  43. @Override
  44. public void onClick(View v) {
  45. mMaterialDialog.dismiss();
  46. onButtonClickListener.onConfirmButtonClick();
  47. }
  48. })
  49. .setNegativeButton(negativeText, new View.OnClickListener() {
  50. @Override
  51. public void onClick(View v) {
  52. mMaterialDialog.dismiss();
  53. onButtonClickListener.onCancelButtonClick();
  54. }
  55. });
  56.  
  57. mMaterialDialog.show();
  58. }
  59.  
  60. }

使用的时候也特别简单:

  1. findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
  2. @Override
  3. public void onClick(View v) {
  4. DialogUtils.showNormalDialog(MainActivity.this, "爱生活,爱编程!", new DialogUtils.OnButtonClickListener() {
  5. @Override
  6. public void onConfirmButtonClick() {
  7. //确定按钮的操作
  8. }
  9.  
  10. @Override
  11. public void onCancelButtonClick() {
  12. super.onCancelButtonClick();
  13. //取消按钮的操作
  14.   }
  15. });
  16. }
  17. });
  18.  
  19. 下面是效果图:

下面是github网址,大家可以根据自己的实际需求进行修改:

https://github.com/drakeet/MaterialDialog

自定义 Material Design风格的提示框的更多相关文章

  1. [原创]自定义view之:快速开发一款Material Design风格的dialog的开源项目MDDialog

    随着google开始主导Material Design风格的设计,越来越多的app开始使用Material Design风格来设计自己的UI.虽然在Android Studio中集成了多种快速开发框架 ...

  2. Material Design风格登录注册

    本文实现了以下功能 完整的代码和样例托管在Github 当接口锁定时,防止后退按钮显示在登录Activity 上. 自定义 ProgressDialog来显示加载的状态. 符合材料设计规范. 悬浮标签 ...

  3. Android 代码库(自定义一套 Dialog通用提示框 )

          做Android开发五年了,期间做做停停(去做后台开发,服务器管理),当回来做Android的时候,发现很生疏,好些控件以前写得很顺手,现在好像忘记些什么了,总要打开这个项目,打开那个项目 ...

  4. Android实现Material Design风格的设置页面(滑动开关控件)

    前言 本文链接 http://blog.csdn.net/never_cxb/article/details/50763271 转载请注明出处 參考了这篇文章 Material Design 风格的设 ...

  5. Material Design风格的水波涟漪效果(Ripple Effect)的实现

    Material Design是Google在2014年Google I/O大会上推出的一套全新的设计语言,经过接近两年的发展,可谓是以燎原之势影响着整个设计交互生态,和Material Design ...

  6. 基于React Native的Material Design风格的组件库 MRN

    基于React Native的Material Design风格的组件库.(为了平台统一体验,目前只打算支持安卓) 官方网站 http://mrn.js.org/ Github https://git ...

  7. 基于jQuery和CSS3超酷Material Design风格滑动菜单导航特效

    分享一款效果非常炫酷的谷歌 Material Design 风格jQuery和CSS3滑动选项卡特效.该选项卡特效集合了扁平风格设计和按钮点击波特效.是一款设计的非常不错的Material Desig ...

  8. 开发Google Material Design风格的WPF程序

    今天在网上看到了一个Material Design风格的WPF皮肤,看上去还是挺不错的 这个项目是开源的,感兴趣的朋友可以下载试下: https://github.com/ButchersBoy/Ma ...

  9. Android开发实战之拥有Material Design风格的侧滑布局

    在实现开发要求中,有需要会使用抽屉式布局,类似于QQ5.0的侧滑菜单,实现的方式有很多种,可以自定义控件,也可以使用第三方开源库. 同样的谷歌也推出了自己的侧滑组件——DrawLayout,使用方式也 ...

随机推荐

  1. 关于String的equals问题和StringBuilder问题

    今天弄了一下String和StringBuilder,遇到了一些问题. 老规矩上代码图片: 发现stringBuilder的equals方法有问题,看了一下源码,发现stringbuilder没有重写 ...

  2. PHP 底层的运行机制与原理

    PHP说简单,但是要精通也不是一件简单的事.我们除了会使用之外,还得知道它底层的工作原理. PHP是一种适用于web开发的动态语言.具体点说,就是一个用C语言实现包含大量组件的软件框架.更狭义点看,可 ...

  3. 在Spring里进行单元测试Junit

    搭建Spring环境(自行搭建): @RunWith注解指定使用springJunit的测试运行器 @ContextConfiguration注解指定测试用的spring配置文件的位置 import ...

  4. swift_Class类的继承

    //: Playground - noun: a place where people can play var str = "Hello, playground" //***** ...

  5. android模拟器genymotion安装virtualbox不能为虚拟电脑启动一个新任务

    错误详情如下: Unable to load R3 module C:\Program Files\Oracle\VirtualBox/VBoxDD.DLL (VBoxDD): GetLastErro ...

  6. [HTML/HTML5]5 使用链接

    5.1  添加指向其它Web页面的链接 无论目标Web页面是否属于你网站的一部分,还是属于其它网站,都可以添加指向其它Web页面的链接.只需要用<a>就可以添加链接. <a href ...

  7. 错误: java.lang.reflect.InvocationTargetException

    错误: java.lang.reflect.InvocationTargetException    at sun.reflect.NativeMethodAccessorImpl.invoke0(N ...

  8. MVC5+EF6 入门完整教程五

    上篇文章介绍了EF实现CRUD及一些基本的Html Helpers. 这次我们将会对之前的内容进行一些修改和重构: 引入Bootstrap样式,搭建几类共用的模板页,对UI进行一些改造 分类介绍Htm ...

  9. ElasticSearch集群配置

    因机器有限,本文只做单机3个节点的集群测试. 1.集群测试信息 elasticsearch版本:elasticsearch-2.4.1 windowns版本:win10 2.解压elasticsear ...

  10. SpringAOP实现(原理)

    AOP原理: AOP分为:JDK动态代理和CGLIB代理 静态代理:由程序员创建或特定工具自动生成源代码,再对其编译.在程序运行前,代理类的.class文件就已经存在了.              注 ...