在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Android無布局文件下自定義通知欄notification的 icon

            Android無布局文件下自定義通知欄notification的 icon

            作者: 時(shí)間:2018-08-31 來源:網(wǎng)絡(luò) 收藏

            在開發(fā)項(xiàng)目一個(gè)與通知欄有關(guān)的功能時(shí),由于自己的項(xiàng)目是基于插件形式的所以無法引入系統(tǒng)可用的布局文件,這樣無法自定義布局,造成無法自定義通知欄的icon。

            本文引用地址:http://www.biyoush.com/article/201808/388191.htm

            在網(wǎng)上也有一種不用布局文件更換icon的方法,但是由于Android的開放性,某些手機(jī)廠商會(huì)修改通知的源碼,不是使用系統(tǒng)原有的布局文件方法有一定的局限性。文章如下http://blog.csdn.net/z1074971432/article/details/10446715有興趣的朋友可以看下。

            為了適配大多數(shù)的機(jī)型這里衍生出一種比較曲線救國(guó)的方式。。。

            public void show(String title, CharSequence content, Bitmap bitmap, PendingIntent intent)

            {

            // 在2.3的機(jī)子上,如果id相同的notifation,有一個(gè)帶ContentIntent一個(gè)不帶就會(huì)拋異常

            _notification.setLatestEventInfo(_context, , , null);

            _notification.flags = _flag;

            RemoteViews hide = _notification.contentView;

            initView(_notification,hide, title, content, intent,bitmap);

            _manager.notify(_id, _notification);

            }

            public void cancel()

            {

            _manager.cancel(_id);

            }

            @SuppressWarnings(deprecation)

            void initView(final Notification bar, final RemoteViews views, String title, CharSequence text, PendingIntent intent, final Bitmap bitmap)

            {

            bar.contentView = null;

            bar.setLatestEventInfo(_context, title, text, intent);

            Notification notification = new Notification();

            notification.setLatestEventInfo(_context, , , null);

            View view = notification.contentView.apply(_context, null);//以notification實(shí)例化一個(gè)View,這個(gè)就是系統(tǒng)當(dāng)前使用的布局視圖

            ViewGroup group = (ViewGroup) view;

            findView(group, new ViewVisitor()

            {

            @Override

            public void onFindView(View item)

            {

            if (item instanceof ImageView)//查找這個(gè)布局下的ImageView就是icon控件

            {

            bar.contentView.setInt(item.getId(), setAlpha, 0);//將原有的icon隱藏,由于在小米系統(tǒng)中系統(tǒng)設(shè)置的icon會(huì)覆蓋原有設(shè)置的

            views.setViewPadding(item.getId(), item.getPaddingLeft(), item.getPaddingTop(), item.getPaddingRight(), item.getPaddingBottom());

            if (bitmap != null)

            views.setImageViewBitmap(item.getId(), bitmap);//設(shè)置icon圖片

            else views.setImageViewResource(item.getId(), _context.getApplicationInfo().icon);

            }

            else if(item instanceof TextView)

            {

            views.setViewVisibility(item.getId(), View.GONE);//隱藏最上層的view里的所有的TextView,不與底層的重疊

            }

            }

            });

            views.setInt(view.getId(), setBackgroundColor, Color.argb(0, 0, 0, 0));設(shè)置上層布局的背景透明

            views.setViewPadding(view.getId(), 0, view.getPaddingTop(), view.getPaddingRight(), view.getPaddingBottom());

            bar.contentView.addView(view.getId(), views);//將views添加到原有的布局視圖上

            }

            public interface ViewVisitor

            {

            void onFindView(View view);

            }

            void findView(ViewGroup group, ViewVisitor visitor)//查找視圖里面的所有子視圖

            {

            for (int i = 0; i group.getChildCount(); i++)

            {

            View view = group.getChildAt(i);

            if (visitor != null)

            visitor.onFindView(view);

            if (view instanceof ViewGroup)

            findView((ViewGroup) view, visitor);

            }

            }

            由于無法對(duì)自定義的布局進(jìn)行準(zhǔn)確定位,所以這種方式的icon和布局大小與原有系統(tǒng)樣式可能有一點(diǎn)偏差!



            關(guān)鍵詞:

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉