一個(gè)好看的Android AlertDialog

最近項(xiàng)目需求,需要一個(gè)好看一點(diǎn)的提示框,網(wǎng)上搜羅一番,發(fā)現(xiàn)sweetDialog 人氣很高,但是到了實(shí)際使用的時(shí)候,發(fā)現(xiàn)有些問(wèn)題不太好解決,而且已經(jīng)三年沒(méi)有更新了,而其他的庫(kù),更是達(dá)不到要求。所以索性自己寫(xiě)了一個(gè)smile-dialog,這里放出來(lái),希望對(duì)大家有所幫助。
目前實(shí)現(xiàn)比較簡(jiǎn)單,只是一個(gè)簡(jiǎn)單的提示框(warning、success、error 三種狀態(tài)),以后持續(xù)添加新的功能。
話不多說(shuō),先上效果圖:

效果圖

使用方法

1.添加Gradle依賴

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

    allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }

Step 2. Add the dependency

    dependencies {
            implementation 'com.github.rosefinches:smile-dialog:1.0.1'
    }

2.主要代碼實(shí)現(xiàn)

      SmileDialog dialog = new SmileDialogBuilder(MainActivity.this, SmileDialogType.ERROR)
                        .setTitleText(R.string.app_name)
                        .setTitleText("222")
                        .setContentText(null)
                        .setConformBgResColor(R.color.colorPrimary)
                        .setTitleTextResColor(R.color.colorAccent)
                        .setContentTextColor(Color.RED)
                        .setConformTextColor(Color.GREEN)
                        .setCancelTextColor(Color.GREEN)
//                       .setCanceledOnTouchOutside(false)
//                       .setCancelable(false)
//                       .hideTitle(true)
                        .setConformButton("sss")
                        .setWindowAnimations(R.style.dialog_style)
                        .build();

                dialog.show();

主要實(shí)現(xiàn)

Dialog實(shí)現(xiàn)

Dialog實(shí)現(xiàn)比較簡(jiǎn)單,繼承DialogFragment,繪制布局;

Icon動(dòng)畫(huà)實(shí)現(xiàn)

icon 由Vector繪制,動(dòng)畫(huà)由animated-vector + objectAnimator 實(shí)現(xiàn),關(guān)于vector 動(dòng)畫(huà)效果,有興趣的童鞋可以去網(wǎng)上搜羅一波,有不少介紹,或者,直接偶的代碼 https://github.com/rosefinches/smile-dialog,這里就不多說(shuō)了。

Api 說(shuō)明

方法 說(shuō)明
setTitleText() 設(shè)置標(biāo)題文字
setTitleTextColor() / setTitleTextResColor() 設(shè)置標(biāo)題字體顏色
setContentText() 設(shè)置內(nèi)容文字
setContentTextColor() / setContentTextResColor() 設(shè)置內(nèi)容字體顏色
setConformButton() 設(shè)置確認(rèn)按鈕文字
setOnConformClickListener(listener) 設(shè)置確認(rèn)監(jiān)聽(tīng)事件
setCancelButton() 設(shè)置取消按鈕文字(默認(rèn)隱藏,有文字,則顯示)
setOnCancelClickListener(listener) 設(shè)置取消監(jiān)聽(tīng)事件
setConformTextColor() / setConformTextResColor() 設(shè)置確認(rèn)按鈕文字顏色
setCancelTextColor() / setCancelTextResColor() 設(shè)置取消按鈕文字顏色
setConformBgColor() / setConformBgResColor() 設(shè)置確認(rèn)按鈕背景顏色
setCancelBgColor() / setCancelBgResColor() 設(shè)置取消按鈕背景顏色
hideTitle() 隱藏標(biāo)題
hideIcon() 隱藏Icon
setCancelable() 是否可以取消
setCanceledOnTouchOutside() 點(diǎn)擊區(qū)域外是否消失
setWindowAnimations() 設(shè)置動(dòng)畫(huà)style

說(shuō)明:

  • 所有設(shè)置文字的方法,參數(shù)都有兩種,分別是(@NonNull CharSequence text)和(@StringRes int res);
  • 所有設(shè)置顏色的方法,參數(shù)有三種,分別是(@ColorInt int color)、(ColorStateList color) 和(@ColorRes int color) ,前兩者是setXXXColor(),后者為setResColor();
  • 設(shè)置按鈕文字時(shí),如果只有一個(gè)參數(shù),則為按鈕文字,如有第二個(gè)參數(shù),則表示給按鈕添加點(diǎn)擊事件
  • 所有方法都是有參數(shù)的,參數(shù)請(qǐng)參考實(shí)際代碼

寫(xiě)在最后

這是一個(gè)簡(jiǎn)單的AlertDialog實(shí)現(xiàn),本猿希望長(zhǎng)期更新,各位有什么問(wèn)題或者有什么建議,還請(qǐng)大家反饋一下,感謝大家支持!

項(xiàng)目地址:https://github.com/rosefinches/smile-dialog

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ¥開(kāi)啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開(kāi)一個(gè)線程,因...
    小菜c閱讀 7,380評(píng)論 0 17
  • Android Vector曲折的兼容之路 兩年前寫(xiě)書(shū)的時(shí)候,就在研究Android L提出的Vector,可研究...
    eclipse_xu閱讀 35,415評(píng)論 30 263
  • 今天我在看某腦SVG視頻和網(wǎng)上查資料時(shí),發(fā)現(xiàn)了和某位大佬的寫(xiě)文章的某種巧合(報(bào)以微妙的笑容)。因?yàn)閺?qiáng)迫癥,所以我想...
    仁昌居士閱讀 5,025評(píng)論 0 11
  • 【Android 動(dòng)畫(huà)】 動(dòng)畫(huà)分類補(bǔ)間動(dòng)畫(huà)(Tween動(dòng)畫(huà))幀動(dòng)畫(huà)(Frame 動(dòng)畫(huà))屬性動(dòng)畫(huà)(Property ...
    Rtia閱讀 6,433評(píng)論 1 38
  • 今天一天挺忙的換了兩個(gè)發(fā)電機(jī)和組長(zhǎng)兩個(gè)一人一個(gè) 忙起來(lái)干活才要多仔細(xì)些不要出錯(cuò)才行
    京心達(dá)侯天祥閱讀 98評(píng)論 0 0

友情鏈接更多精彩內(nèi)容