版權聲明:本文為博主原創文章,未經博主允許不得轉載。
其實在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