Notification自定义界面

 更新时间:2017年11月30日 08:46:41   作者:潘建成  
这篇文章主要为大家详细介绍了Notification自定义界面的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

前言

之前在做一个手机的播放器,需要做到在通知栏显示控制播放的界面,如下:

这里写图片描述

这是让服务在前台运行就可以实现的(可以参考我的前一篇文章Service在前台运行),今天我们就要实现Notification的自定义界面,当然就不实现如上图所示的了,而是下面一个简单的界面,随自己的需要搭建自己想要的界面。

这里写图片描述

可以看到,我实现了一个简单的界面,包括一个ImageView和Button,下面我就说说该如何实现它,其实很简单。

实现

首先我们要准备一个界面文件:

notification.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_marginTop="10dp"
 android:layout_marginBottom="10dp"
 android:background="#333300"
 android:layout_width="match_parent"
 android:layout_height="match_parent">
 <ImageView
  android:paddingLeft="20dp"
  android:layout_width="70dp"
  android:layout_height="50dp"
  android:src="@drawable/ic_qiuda"
  />
 <Button
  android:layout_marginLeft="30dp"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="点击我"
  />
</LinearLayout>

然后新建一个Service的子类,MyService:

public class MyService extends Service {

 public static final String TAG = "MyService";

 @Override
 public void onCreate() {
  super.onCreate();
  Notification notification = new Notification(R.drawable.ic_launcher,
    "JcMan", System.currentTimeMillis());
  RemoteViews view = new RemoteViews(getPackageName(),R.layout.notification);
  notification.contentView = view;
  startForeground(1, notification);

 }
 @Override
 public IBinder onBind(Intent intent) {
  return null;
 }
}

可以看到,在onCreate方法里面我们设置界面的不再是用LayoutInflater来得到界面,而是用RemoteViews来new出来一个界面,构造方法传入的是包名和界面资源的ID即可,然后我们把notification.contentView设置成我们new出来的自定义界面即可。

小结

普通的Notification可以用来进行通知,但是当有特殊需要的时候,我们就需要自定义界面,而且有时候还需要对自定义的界面添加点击的方法,如在上图的界面里面有一个Button如何对Button的点击事件进行响应,这是一个比较难的问题,因为这不是简单的setOnClickListener就可以的,需要另外的实现,需要用到广播机制,我将会在下一篇文章中说明如何为Notification的自定义界面添加点击事件。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Android中WebView的基本配置与填坑记录大全

    Android中WebView的基本配置与填坑记录大全

    webview是一直都很痛恨的控件,你又不能不用,但是一旦大规模测试起来你就发现这个webview真是坑。各种你想不到的错误 在各种奇怪的手机,各种不一样的版本里出现各种想不到的问题。本文就介绍了Android中WebView的基本配置与遇到的一些填坑记录,需要的朋友可以参考下。
    2017-11-11
  • Android自定义DigitalClock控件实现商品倒计时

    Android自定义DigitalClock控件实现商品倒计时

    这篇文章主要为大家详细介绍了Android DigitalClock实现商品倒计时,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • Android App应用退到后台显示通知的实现方法

    Android App应用退到后台显示通知的实现方法

    当用户收到app发过来的消息时,如果app没有在前台打开,需要提醒用户有新的消息,所以这篇文章主要给大家介绍了关于Android App应用退到后台显示通知的实现方法,需要的朋友可以参考下
    2022-01-01
  • Android调用系统默认浏览器访问的方法

    Android调用系统默认浏览器访问的方法

    这篇文章主要介绍了Android调用系统默认浏览器访问的方法的相关资料,需要的朋友可以参考下
    2016-03-03
  • Android开发教程之电源管理详解

    Android开发教程之电源管理详解

    这篇文章主要介绍了Android开发教程之电源管理,较为详细的分析了Android电源管理的相关概念、注意事项与功能实现技巧,需要的朋友可以参考下
    2016-06-06
  • android项目从Eclipse迁移到Android studio中常见问题解决方法

    android项目从Eclipse迁移到Android studio中常见问题解决方法

    android项目从Eclipse迁移到Android studio中经常会遇到一些问题,本文提供了Android studio使用中常见问题解决方法
    2018-03-03
  • Android 高仿微信支付数字键盘功能

    Android 高仿微信支付数字键盘功能

    现在很多app的支付、输入密码功能,都是使用自定义数字键盘,方便实用。下面本文给大家带来了Android 高仿微信支付数字键盘功能,非常不错,感兴趣的朋友一起学习吧
    2016-08-08
  • Android AndroidX的迁移

    Android AndroidX的迁移

    这篇文章主要介绍了Android AndroidX的迁移,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Flutter开发之对角棋游戏实现实例详解

    Flutter开发之对角棋游戏实现实例详解

    这篇文章主要为大家介绍了Flutter开发之对角棋游戏实现实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • Android实现屏幕旋转四个方向准确监听

    Android实现屏幕旋转四个方向准确监听

    这篇文章主要为大家详细介绍了Android实现屏幕旋转四个方向准确监听,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07

最新评论