zoukankan      html  css  js  c++  java
  • 自定义 Material Design风格的提示框

    关闭

    自定义 Material Design风格的提示框

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

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

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

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

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

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

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

    package com.personal.xiaoshuai.mddialog;
    
    import android.content.Context;
    import android.view.View;
    
    import me.drakeet.materialdialog.MaterialDialog;
    
    
    /**
     * Created by zhangs on 2016/4/24.
     */
    public class DialogUtils {
    
        public static abstract class OnButtonClickListener{
            public abstract void onConfirmButtonClick();
            public void onCancelButtonClick(){
    
            }
        }
    
        /**
         * 只显示一个按钮调用这个方法
         * @param context
         * @param message
         * @param positiveText
         * @param onButtonClickListener
         */
        public static void showSingleButtonDialog(Context context, String message,String positiveText,OnButtonClickListener onButtonClickListener) {
            showCustomMessageDialog(context,message,null,positiveText,onButtonClickListener);
        }
    
    
        public static void showNormalDialog(Context context, String message, final OnButtonClickListener onButtonClickListener){
            showCustomMessageDialog(context,message,"取消","确定",onButtonClickListener);
        }
    
        public static void showCustomMessageDialog(Context context, String message,String negativeText,String positiveText, final OnButtonClickListener onButtonClickListener){
             showCustomMessageDialog(context,"提示",message,negativeText,positiveText,onButtonClickListener);
        }
        public static void showCustomMessageDialog(Context context, String title,String message,String negativeText,String positiveText, final OnButtonClickListener onButtonClickListener){
            final MaterialDialog mMaterialDialog = new MaterialDialog(context);
            mMaterialDialog.setTitle(title)
                    .setMessage(message)
                    .setPositiveButton(positiveText, new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            mMaterialDialog.dismiss();
                            onButtonClickListener.onConfirmButtonClick();
                        }
                    })
                    .setNegativeButton(negativeText, new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            mMaterialDialog.dismiss();
                            onButtonClickListener.onCancelButtonClick();
                        }
                    });
    
            mMaterialDialog.show();
        }
    
    }
    

    使用的时候也特别简单:

    findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            DialogUtils.showNormalDialog(MainActivity.this, "爱生活,爱编程!", new DialogUtils.OnButtonClickListener() {
                @Override
                public void onConfirmButtonClick() {
                 //确定按钮的操作
                }
    
                @Override
                public void onCancelButtonClick() {
                    super.onCancelButtonClick();
                  //取消按钮的操作
               }
            });
        }
    });
    
    下面是效果图:
    

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

    https://github.com/drakeet/MaterialDialog

  • 相关阅读:
    FFmpegTool 这个是很早以前写得ffmpeg c99部分转C89工具代码
    mmsplayer V2 for IOS 完成. V2 所有汇总
    关于mmsplayer一些电台不支持播放问题说明
    libmpg123 解码库用法
    [置顶] mmsplayer V2 for IOS 完成. V2 所有汇总
    使用lipo合并iPhone模拟器和真机的静态类库
    vbs编程
    Adobe reader查阅PDF文件无法显示中文
    常去的下载网站
    .Net程序设计快速入门——分页设计篇
  • 原文地址:https://www.cnblogs.com/huangjianboke/p/5447281.html
Copyright © 2011-2022 走看看