安卓通知栏自定义布局提示(NotificationCompat.Builder)

.activity代码

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. package com.example.lockscreen;  
  2.   
  3. import android.app.Activity;  
  4. import android.app.Notification;  
  5. import android.app.NotificationManager;  
  6. import android.app.PendingIntent;  
  7. import android.content.Context;  
  8. import android.content.Intent;  
  9. import android.graphics.Bitmap;  
  10. import android.graphics.BitmapFactory;  
  11. import android.os.Bundle;  
  12. import android.support.v4.app.NotificationCompat;  
  13. import android.view.View;  
  14. import android.widget.RemoteViews;  
  15.   
  16. public class MainActivity extends Activity {  
  17.     @Override  
  18.     protected void onCreate(Bundle savedInstanceState) {  
  19.         super.onCreate(savedInstanceState);  
  20.         setContentView(R.layout.activity_main);  
  21.     }  
  22.       
  23.     public void clickNo(View v){  
  24.       
  25.            if(v.getId() == R.id.button1){  
  26.                  //系统默认布局   
  27.                  Bitmap btm = BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher);  
  28.                  NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(MainActivity.this).setSmallIcon(R.drawable.ic_launcher)  
  29.                     .setContentTitle("5 new message")  
  30.                     .setContentText("twain@android.com");  
  31.                    
  32.                     mBuilder.setTicker("New message");//第一次提示消息的时候显示在通知栏上  
  33.                     mBuilder.setNumber(12);  
  34.                     mBuilder.setLargeIcon(btm);  
  35.                     mBuilder.setAutoCancel(true);//自己维护通知的消失  
  36.                     //使用默认提示音  
  37.                     mBuilder.setDefaults(Notification.DEFAULT_ALL);  
  38.                    //点击通知栏跳转的activity  
  39.                     Intent resultIntent = new Intent(MainActivity.this,  
  40.                             MainActivity.class);  
  41.                     PendingIntent resultPendingIntent = PendingIntent.getActivity(  
  42.                             MainActivity.this0, resultIntent,  
  43.                             PendingIntent.FLAG_UPDATE_CURRENT);  
  44.                       
  45.                     mBuilder.setContentIntent(resultPendingIntent);  
  46.                       
  47.                     NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);  
  48.                     mNotificationManager.notify(0, mBuilder.build());  
  49.            }else if(v.getId() == R.id.button2){  
  50.                //自定义显示布局  
  51.                RemoteViews contentViews = new RemoteViews(getPackageName(),R.layout.custom_notification);  
  52.                //通过控件的Id设置属性  
  53.                contentViews.setImageViewResource(R.id.imageNo, R.drawable.ic_launcher);  
  54.                contentViews.setTextViewText(R.id.titleNo, "自定义通知标题");  
  55.                contentViews.setTextViewText(R.id.textNo, "自定义通知内容");  
  56.                //点击通知栏跳转的activity  
  57.                Intent intent = new Intent(MainActivity.this, MainActivity.class);  
  58.                PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this0, intent,  
  59.                PendingIntent.FLAG_CANCEL_CURRENT);  
  60.                  
  61.                NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(  
  62.                MainActivity.this).setSmallIcon(R.drawable.ic_launcher)  
  63.                .setContentTitle("My notification")  
  64.                .setTicker("new message");  
  65.                //自动管理通知栏消息  
  66.                mBuilder.setAutoCancel(true);  
  67.                mBuilder.setContentIntent(pendingIntent);  
  68.                ///自定义布局  
  69.                mBuilder.setContent(contentViews);  
  70.                //使用默认提示音  
  71.                mBuilder.setDefaults(Notification.DEFAULT_ALL);  
  72.                NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);  
  73.                mNotificationManager.notify(1, mBuilder.build());  
  74.            }      
  75.     }  
  76. }  

2.自定义布局文件(custom_notification.xml)

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.      android:layout_width="match_parent"  
  4.      android:layout_height="match_parent"   
  5.      android:padding="10dp"   
  6.      >  
  7.     <ImageView   
  8.            android:id="@+id/imageNo"  
  9.            android:layout_width="wrap_content"   
  10.            android:layout_height="match_parent"  
  11.            android:layout_alignParentLeft="true"  
  12.            android:layout_marginRight="10dp"/>  
  13.       
  14.         <TextView   
  15.              android:id="@+id/titleNo"   
  16.              android:layout_width="wrap_content"   
  17.              android:layout_height="wrap_content"  
  18.              android:layout_toRightOf="@id/imageNo"/>  
  19.           
  20.               <TextView android:id="@+id/textNo"   
  21.                       android:layout_width="wrap_content"   
  22.                        android:layout_height="wrap_content"   
  23.                        android:layout_below="@id/titleNo"   
  24.                         android:layout_toRightOf="@id/imageNo">  
  25.                 </TextView>  
  26.           
  27. </RelativeLayout>  


3.源码下载:http://download.csdn.NET/detail/wd4871/9440333


油管地址:点击打开链接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值