【Android】自定义状态栏通知

在项目开发中,我们有时候需要自定义状态栏通知的样式,以下就是自定义状态栏通知的一个案例代码,以此作为一个记录,有需要的童鞋也可以参考一下

  1. 状态栏通知布局custom_notification.xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="64dp"
        android:background="@android:color/white">
    
        <ImageView
            android:id="@+id/image"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_alignParents="true"
            android:layout_centerVertical="true"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp" />
    
        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_toRightOf="@id/image">
    
            <TextView
                android:id="@+id/title"
                style="@style/NotificationTitle"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true" />
    
            <TextView
                android:id="@+id/text"
                style="@style/NotificationText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/title"
                android:ellipsize="end"
                android:lines="2" />
    
            <TextView
                android:id="@+id/time"
                style="@style/NotificationText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBottom="@id/title"
                android:layout_alignParentRight="true"
                android:layout_marginRight="5dip"
                android:layout_toLeftOf="@id/title" />
        </RelativeLayout>
    </RelativeLayout>
    
  2. 这里面的style都是使用的继承系统的文字样式

    <!-- 自定义状态栏通知 -->
    <style name="NotificationText" parent="android:TextAppearance.StatusBar.EventContent">
        <item name="android:textColor">#bb000000</item>
        <item name="android:textSize">16px</item>
    </style>
    <style name="NotificationTitle" parent="android:TextAppearance.StatusBar.EventContent.Title">
        <item name="android:textColor">#bb000000</item>
    </style>
    
  3. 创建自定义通知方法

    /**
     * 自定义通知
     */
    private void createCustomNotification(Context context, String tickerText,
                                          int drawable, String title, String content, int id,
                                          PendingIntent pendingIntent) {
        int icon = R.mipmap.ic_launcher;
        long when = System.currentTimeMillis();
        //必须要有这三个参数,不然出来的状态栏显示不全
        Notification notification = new Notification(icon, tickerText, when);
    
        RemoteViews contentView = new RemoteViews(this.getPackageName(), R.layout.custom_notification);
        contentView.setImageViewResource(R.id.image, drawable);
        contentView.setTextViewText(R.id.title, title);
        contentView.setTextViewText(R.id.text, content);
        // 设置日期格式
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String time = dateFormat.format(new Date());
        contentView.setTextViewText(R.id.time, time.substring((time.length() - 8), (time.length() - 3)));
    
        notification.contentView = contentView;
        notification.contentIntent = pendingIntent;
        notification.flags |= Notification.FLAG_AUTO_CANCEL;
        notification.defaults = Notification.DEFAULT_SOUND;
        NotificationManager mNotificationManager = (NotificationManager) context
                .getSystemService(Context.NOTIFICATION_SERVICE);
        mNotificationManager.notify(id, notification);
    }
    

欢迎androider扫描以下二维码关注微信公众号:爱安卓 ,或者搜索微信 : loveandroid321关注
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 随着移动设备的普及,越来越多的人开始使用android系统的手机或平板电脑。然而,很多人对于android系统自带的状态栏布局并不满意,这时候我们就需要一款android状态栏沉浸软件来改善这种情况。 简单来讲,android状态栏沉浸软件可以让用户将原本系统自带的状态栏隐藏起来,使屏幕更加纯净简洁。同时,用户可以根据自己的喜好自定义状态栏的背景颜色、透明度、图标等一系列属性。这种软件能够让用户在使用手机或平板电脑时拥有更好的使用体验,同时提高了屏幕的利用率。 值得一提的是,android状态栏沉浸软件在不同的手机品牌和系统版本下可能会存在兼容性问题,所以在选择使用前最好先查询一下相关的使用教程和注意事项。 总之,android状态栏沉浸软件是一款非常实用的软件,可以提升用户的使用体验和工作效率,如果你想要获得更好的屏幕展示效果,那么不妨尝试一下这种软件。 ### 回答2: Android 状态栏沉浸软件是一种让用户可以自定义和优化 Android 系统状态栏显示方式的工具。在大多数 Android 设备上,状态栏是一个固定的元素,通常显示设备的时间、电量、信号和通知等信息,占据屏幕的顶部。然而,有些用户希望将应用程序占用的可用空间最大化,因此状态栏可能会显得有些碍眼。同时,一些用户喜欢自定义外观,以便与自己设备的主题相匹配。 Android 状态栏沉浸软件通过隐藏或重定义状态栏,增加了屏幕的可用空间。例如,可以让状态栏完全消失,节省了顶部的宝贵空间。或者,也可以选择改变状态栏的颜色以配合设备的主题,这样便于与屏幕的其他元素相协调。 除了可用屏幕空间和外观之外,状态栏沉浸软件还可以在阅读、视频观看或游戏等场景中提供更佳的用户体验。正如人们不喜欢在大屏幕电视上看影片时在底部或顶部看到那些控制按钮一样,手机屏幕也将会受到相同的影响。当状态栏隐藏后,用户可以获得更清晰的视觉体验。 总的来说,Android 状态栏沉浸软件为用户提供了更好的自定义体验,同时也更增加了屏幕显示效果。无论是为优化手机的可用空间,还是为了更好的视觉体验,它都是一种非常有用的工具。 ### 回答3: Android状态栏沉浸模式是一种让应用程序能够使用全屏显示的功能。传统的Android状态栏会出现在屏幕最上方,占用屏幕的一部分,导致应用程序无法使用整个屏幕。当一个应用程序启用状态栏沉浸模式时,系统的状态栏会被隐藏,使应用程序能够使用整个屏幕。 有很多现有的Android状态栏沉浸软件,让你能够启用这个功能,例如SystemUI Tuner、SetEdit等。这些软件有不同的设置选项,可以供用户选择。 对于程序员来说,他们也可以利用Android的API来实现沉浸模式。这需要他们在代码中添加一些指令,以告诉Android系统如何隐藏状态栏。不过这对一般用户来说,可能会比较困难。 总的来说,状态栏沉浸软件可以让用户在使用应用程序时,是能够看到更多的内容。这种功能通常更适合用于娱乐和游戏,而非日常使用。切记使用状态栏沉浸模式,需要注意不要被短信,来电等信息所打扰。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值