自定義Notification樣式遇到的坑

順帶一提用系統(tǒng)樣式自帶的是必須設(shè)置三個(gè)屬性

setContentText()
setContentTitle()
setSmallIcon()

不然會(huì)報(bào)錯(cuò):比如

java.lang.IllegalArgumentException: 
Invalid notification (no valid small icon): 
Notification(pri=0 contentView=com.grandmagic.readingmate/0x7f04008c headsUpContentView=null bigContentView=null vibrate=null sound=null tick defaults=0x0 flags=0x10 color=0x00000000 vis=PRIVATE)
                                                                              at android.app.NotificationManager.notify(NotificationManager.java:225)
                                                                              at android.app.NotificationManager.notify(NotificationManager.java:197)

想要使用自定義的Notification的時(shí)候
當(dāng)然是要使用
RemoteViews這個(gè)咯,需要注意的是刁愿,它的構(gòu)造方法

new RemoteViews(mAppContext.getPackageName(), R.layout.notification_view);

需要傳入包名和布局栏尚,布局中能用的控件是有限的,
搜索了一下說(shuō)是只能使用

AnalogClock用狱,Button,Chronometer拼弃,ImageButton夏伊,mageView,ProgressBar吻氧,TextView這7種溺忧,

布局中的寬咏连,必須為0,wrap_content鲁森,或match_parent
因?yàn)閺膭e的地方拷貝的布局祟滴。里面用的居然是fill_parent。果斷拋出異常歌溉,源碼中是這樣的

  if (layoutWidth != 0 && layoutWidth != ViewGroup.LayoutParams.MATCH_PARENT
            && layoutWidth != ViewGroup.LayoutParams.WRAP_CONTENT) {
        throw new IllegalArgumentException("Only supports 0, WRAP_CONTENT and MATCH_PARENT");
    }

垄懂,然后之所以使用自定義布局,就是想通知欄顯示好友頭像研底,而不是固定的資源文件而已埠偿,所以加載圖片的時(shí)候可能需注意。一般是先下載圖片在設(shè)置Notification榜晦,比如我用Glide下載冠蒋,需要注意Glide要求into()方法必須在主線程執(zhí)行,所以用了Rxjava切換線程乾胶,畢竟不是Activity的context不能runOnUithread()抖剿;

   Observable
            .just(Environment.BASEULR_PRODUCTION+mUserInfo.getAvatar_url().getMid())
            .flatMap(new Func1<String, Observable<BitmapTypeRequest<String>>>() {
                @Override
                public Observable<BitmapTypeRequest<String>> call(String mS) {
                    BitmapTypeRequest<String> mStringBitmapTypeRequest = Glide.with(mAppContext).load(mS).asBitmap();
                    return Observable.just(mStringBitmapTypeRequest);
                }
            })
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Subscriber<BitmapTypeRequest<String>>() {
                @Override
                public void onCompleted() {

                }

                @Override
                public void onError(Throwable e) {
                 showNotification(mUserInfo,mNotifytxt,mMessage,null);
                }

                @Override
                public void onNext(BitmapTypeRequest<String> mStringBitmapTypeRequest) {
                    mStringBitmapTypeRequest.into(new SimpleTarget<Bitmap>() {
                        @Override
                        public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
                            showNotification(mUserInfo,mNotifytxt,mMessage,resource);
                        }
                    });
                }
            });

其實(shí)最后發(fā)現(xiàn),自定義的RemoteViews會(huì)遇到適配的麻煩识窿。不同的ROM拉下來(lái)的通知欄是不一樣的斩郎。比如我android 4.4的模擬器是黑色的,而魅族flyme6.0的系統(tǒng)通知拉下來(lái)的背景是灰色的


圖片發(fā)自簡(jiǎn)書App

喻频,而我一加手機(jī)3T的通知又是白色的缩宜,
圖片發(fā)自簡(jiǎn)書App

你在布局里面寫背景色吧會(huì)和系統(tǒng)的不協(xié)調(diào),不寫吧又會(huì)導(dǎo)致在不同的背景下字體顏色起沖突甥温。還是系統(tǒng)自帶的比較好用哈哈锻煌。

不同定制的ROM默認(rèn)的通知欄是不一樣的布局的,比如:在一加3T的largeIcon會(huì)被放到右邊姻蚓,魅族上不顯示宋梧。不過好歹是還算和系統(tǒng)協(xié)調(diào)了。最終折騰了半天還是選擇了用系統(tǒng)的狰挡。畢竟我看QQ微信神馬的似乎也是用的自帶的通知捂龄。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市加叁,隨后出現(xiàn)的幾起案子倦沧,更是在濱河造成了極大的恐慌,老刑警劉巖它匕,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件刀脏,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡超凳,警方通過查閱死者的電腦和手機(jī)愈污,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)轮傍,“玉大人暂雹,你說(shuō)我怎么就攤上這事〈匆梗” “怎么了杭跪?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)驰吓。 經(jīng)常有香客問我涧尿,道長(zhǎng),這世上最難降的妖魔是什么檬贰? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任姑廉,我火速辦了婚禮,結(jié)果婚禮上翁涤,老公的妹妹穿的比我還像新娘桥言。我一直安慰自己,他們只是感情好葵礼,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布号阿。 她就那樣靜靜地躺著,像睡著了一般鸳粉。 火紅的嫁衣襯著肌膚如雪扔涧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天届谈,我揣著相機(jī)與錄音枯夜,去河邊找鬼。 笑死疼约,一個(gè)胖子當(dāng)著我的面吹牛卤档,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播程剥,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼劝枣,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了织鲸?” 一聲冷哼從身側(cè)響起舔腾,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎搂擦,沒想到半個(gè)月后稳诚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瀑踢,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年扳还,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了才避。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡氨距,死狀恐怖桑逝,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情俏让,我是刑警寧澤楞遏,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站首昔,受9級(jí)特大地震影響寡喝,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜勒奇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一预鬓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧撬陵,春花似錦珊皿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至草添,卻和暖如春驶兜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背远寸。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工抄淑, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人驰后。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓肆资,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親灶芝。 傳聞我的和親對(duì)象是個(gè)殘疾皇子郑原,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

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