zoukankan      html  css  js  c++  java
  • 自定义的Notification

    要创建一个自定义的Notification,可以使用RemoteViews。要定义自己的扩展消息,首先要初始化一个RemoteViews对象,然后将它传递给Notification contentView字段,再把PendingIntent传递给contentIntent字段。以下示例代码是完整步骤: 

    //1、创建一个自定义的消息布局 view.xml 

    <?xml version="1.0" encoding="utf-8"?> 

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android

    android:layout_width="fill_parent" android:layout_height="fill_parent"> 

    <ImageView android:id="@+id/image" android:layout_width="wrap_content" 

    android:layout_height="fill_parent" android:layout_marginRight="10dp" /> 

    <TextView android:id="@+id/text" android:layout_width="wrap_content" 

    android:layout_height="fill_parent" android:textColor="#000" /> 

    </LinearLayout> 

    //2、在程序代码中使用RemoteViews的方法来定义image和text。然后把RemoteViews对象传到contentView字段 

    RemoteViews contentView = new RemoteViews(getPackageName(),R.layout.view); 

    contentView.setImageViewResource(R.id.image,R.drawable.icon); 

    contentView.setTextViewText(R.id.text,”Hello,this message is in a custom expanded view”); 

    notification.contentView = contentView; 

    //3、为Notification的contentIntent字段定义一个Intent(注意,使用自定义View不需要setLatestEventInfo()方法) 

    Intent notificationIntent = new Intent(this,Main.class); 

    PendingIntent contentIntent = PendingIntent.getActivity(this,0,notificationIntent,0); 

    notification.contentIntent = contentIntent; 

    //4、发送通知 

    mNotificationManager.notify(2,notification); 

    //以下是全部示例代码 

    //创建一个NotificationManager的引用 

    String ns = Context.NOTIFICATION_SERVICE; 

    NotificationManager mNotificationManager = (NotificationManager)getSystemService(ns); 

    //定义Notification的各种属性 

    int icon = R.drawable.icon; //通知图标 

    CharSequence tickerText = "Hello"; //状态栏显示的通知文本提示 

    long when = System.currentTimeMillis(); //通知产生的时间,会在通知信息里显示 

    //用上面的属性初始化Nofification 

    Notification notification = new Notification(icon,tickerText,when); 

    RemoteViews contentView = new RemoteViews(getPackageName(),R.layout.view); 

    contentView.setImageViewResource(R.id.image, R.drawable.iconempty); 

    contentView.setTextViewText(R.id.text, "Hello,this is JC"); 

    notification.contentView = contentView; 

    Intent notificationIntent = new Intent(this,Main.class); 

    PendingIntent contentIntent = PendingIntent.getActivity(this,0,notificationIntent,0); 

    notification.contentIntent = contentIntent; 

    //把Notification传递给NotificationManager 

    mNotificationManager.notify(0,notification);

    来自:http://blog.csdn.net/iamfafa/article/details/6298011

  • 相关阅读:
    LeetCode 842. Split Array into Fibonacci Sequence
    LeetCode 1087. Brace Expansion
    LeetCode 1219. Path with Maximum Gold
    LeetCode 1079. Letter Tile Possibilities
    LeetCode 1049. Last Stone Weight II
    LeetCode 1046. Last Stone Weight
    LeetCode 1139. Largest 1-Bordered Square
    LeetCode 764. Largest Plus Sign
    LeetCode 1105. Filling Bookcase Shelves
    LeetCode 1027. Longest Arithmetic Sequence
  • 原文地址:https://www.cnblogs.com/code4app/p/4331885.html
Copyright © 2011-2022 走看看