Android 為Toast添加動畫

GitHub:ToastEx
toast.gif

導(dǎo)入項目

Step 1. Add the JitPack repository to your build file

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

Step 2. Add the dependency

dependencies {
        implementation 'com.github.Zzzia:ToastEx:1.0.1'
}

用法

基礎(chǔ)用法开泽,默認有圖標(biāo)+動畫
ToastEx.error(context, "...").show();
ToastEx.success(context, "...").show();
ToastEx.info(context, "...").show();
ToastEx.warning(context, "...").show();
ToastEx.normal(context, "...").show();
可以深度定制自己的動畫

加入自己的自定義view在后面介紹

//自定義圖標(biāo)的方法
ToastEx.custom(context
    , "..."
    , Toast.LENGTH_SHORT//時間
    , ToastEx.NO_COLOR//背景顏色
    , toastImage)//自定義圖標(biāo)
    .show();

//自定義圖標(biāo)和文字的方法斑鸦,若只需要自定義文字,圖標(biāo)傳入null即可
ToastEx.custom(context
    , new CustomText(context)//自定義文字
    , Toast.LENGTH_SHORT
    , ToastEx.NO_COLOR
    , new InfoAnim(context))
    .show();

//獲取顏色和動畫時長
public void setDuration(int duration);
public void setColor(int color);

修改默認效果

在任意地方使用即可

ToastEx.Config.getInstance()
    .setErrorColor(@ColorInt int errorColor) // optional
    .setInfoColor(@ColorInt int infoColor) // optional
    .setSuccessColor(@ColorInt int successColor) // optional
    .setWarningColor(@ColorInt int warningColor) // optional
    .setTextColor(@ColorInt int textColor) // optional
    .tintIcon(boolean tintIcon) // 是否顯示圖標(biāo)
    .setUseAnim(boolean useAnim) //是否顯示動畫
    .setToastTypeface(@NonNull Typeface typeface) // optional
    .setTextSize(int sizeInSp) // optional
    .apply(); // 別忘使用這個方法

重置為默認效果

ToastEx.Config.reset();

自定義屬于自己的動畫效果

借鑒了很多ToastyTastyToast的元素喷众,Toasty沒有動畫效果卿泽,也很難自己去添加莺债,而TastyToast有動畫效果,卻并不能運用在有特殊要求的項目中签夭,于是自己寫了ToastEx齐邦。

先了解一下toast的布局。就是一個LinearLayout第租,方向為橫向措拇,有一個基于ImageView的子布局和一個基于TextView的子布局,分別是ToastImage和ToastText慎宾,能夠接收動畫持續(xù)時長和顏色兩個參數(shù)丐吓。

自定義過程就是重寫onDraw方法,實現(xiàn)完畢后使用ToastEx.custom()即可實現(xiàn)自定義動畫趟据。

ToastEx.custom(context
    , new CustomText(context)//自定義文字動畫
    , Toast.LENGTH_SHORT//時間
    , ToastEx.NO_COLOR//背景顏色
    , new InfoAnim(context))//自定義圖標(biāo)動畫券犁,可以不要
    .show();

以app中的文字變色的動畫舉例

/**
 * Created by zia on 2018/5/14.
 * 文字漸變
 */
public class CustomText extends ToastText {

    private int duration;
    private boolean begin = false;
    private int color = 0;

    public CustomText(Context context) {
        super(context);
    }

    @Override//重寫該方法,獲得動畫最佳持續(xù)時間
    public void setDuration(int duration) {
        super.setDuration(duration);
        this.duration = duration;
    }

    @Override//重寫該方法汹碱,獲得文字顏色
    public void setColor(int color) {
        super.setColor(color);
        this.color = color;
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        if (!begin) {//一個顏色漸變的屬性動畫
            begin = true;
            ValueAnimator valueAnimator;
            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
                valueAnimator = ValueAnimator.ofArgb(color, Color.RED);
            } else {
                valueAnimator = ValueAnimator.ofInt(color, Color.RED);
            }
            valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
                @Override
                public void onAnimationUpdate(ValueAnimator animation) {
                    CustomText.this.color = (int) animation.getAnimatedValue();
                    postInvalidate();
                }
            });
//            valueAnimator.setDuration(duration);
            //為了顯示漸變效果粘衬,把時間改為1s
            valueAnimator.setDuration(1000);
            valueAnimator.start();
        }
        setTextColor(color);//設(shè)置文字顏色
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子稚新,更是在濱河造成了極大的恐慌泼舱,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件枷莉,死亡現(xiàn)場離奇詭異,居然都是意外死亡尺迂,警方通過查閱死者的電腦和手機笤妙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來噪裕,“玉大人蹲盘,你說我怎么就攤上這事∩乓簦” “怎么了召衔?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長祭陷。 經(jīng)常有香客問我苍凛,道長,這世上最難降的妖魔是什么兵志? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任醇蝴,我火速辦了婚禮,結(jié)果婚禮上想罕,老公的妹妹穿的比我還像新娘悠栓。我一直安慰自己,他們只是感情好按价,可當(dāng)我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布惭适。 她就那樣靜靜地躺著,像睡著了一般楼镐。 火紅的嫁衣襯著肌膚如雪癞志。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天框产,我揣著相機與錄音今阳,去河邊找鬼。 笑死茅信,一個胖子當(dāng)著我的面吹牛盾舌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蘸鲸,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼妖谴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起膝舅,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤嗡载,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后仍稀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體洼滚,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年技潘,在試婚紗的時候發(fā)現(xiàn)自己被綠了遥巴。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡享幽,死狀恐怖铲掐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情值桩,我是刑警寧澤摆霉,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站奔坟,受9級特大地震影響携栋,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜咳秉,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一刻两、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧滴某,春花似錦磅摹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至幕侠,卻和暖如春帝美,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背晤硕。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工悼潭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人舞箍。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓舰褪,卻偏偏與公主長得像,于是被迫代替她去往敵國和親疏橄。 傳聞我的和親對象是個殘疾皇子占拍,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,504評論 25 707
  • Media:本類旨在與媒體合作略就。 usermedia.get: 檢索媒體 user.addmedia: 創(chuàng)建新媒...
    差不多先生_tl閱讀 328評論 0 0
  • 列舉 Binding of Isaac : Rebirth 里一些很棒的設(shè)計。 引言 我仔細看了一下我的 Stea...
    jagttt閱讀 547評論 0 2
  • 我很久沒有看過日落了晃酒。自從來了大學(xué)表牢,心似乎變得疲憊了許多,時而大喜大悲贝次,但更多的是波瀾不驚崔兴。人會成長,會成熟蛔翅,可我...
    廣電1701B魯萌閱讀 143評論 0 1