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

1.activity代码

package com.example.lockscreen;

import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.support.v4.app.NotificationCompat;
import android.view.View;
import android.widget.RemoteViews;

public class MainActivity extends Activity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}
	
	public void clickNo(View v){
	
	       if(v.getId() == R.id.button1){
	    	     //系统默认布局 
	    	     Bitmap btm = BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher);
	   		     NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(MainActivity.this).setSmallIcon(R.drawable.ic_launcher)
	   				.setContentTitle("5 new message")
	   				.setContentText("twain@android.com");
	   		     
	   				mBuilder.setTicker("New message");//第一次提示消息的时候显示在通知栏上
	   				mBuilder.setNumber(12);
	   				mBuilder.setLargeIcon(btm);
	   				mBuilder.setAutoCancel(true);//自己维护通知的消失
	   			    //使用默认提示音
	 			    mBuilder.setDefaults(Notification.DEFAULT_ALL);
	   			   //点击通知栏跳转的activity
	   				Intent resultIntent = new Intent(MainActivity.this,
	   						MainActivity.class);
	   				PendingIntent resultPendingIntent = PendingIntent.getActivity(
	   						MainActivity.this, 0, resultIntent,
	   						PendingIntent.FLAG_UPDATE_CURRENT);
	   				
	   				mBuilder.setContentIntent(resultPendingIntent);
	   				
	   				NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
	   				mNotificationManager.notify(0, mBuilder.build());
	       }else if(v.getId() == R.id.button2){
	    	   //自定义显示布局
	           RemoteViews contentViews = new RemoteViews(getPackageName(),R.layout.custom_notification);
			   //通过控件的Id设置属性
			   contentViews.setImageViewResource(R.id.imageNo, R.drawable.ic_launcher);
			   contentViews.setTextViewText(R.id.titleNo, "自定义通知标题");
			   contentViews.setTextViewText(R.id.textNo, "自定义通知内容");
			   //点击通知栏跳转的activity
			   Intent intent = new Intent(MainActivity.this, MainActivity.class);
			   PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this, 0, intent,
			   PendingIntent.FLAG_CANCEL_CURRENT);
			   
			   NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
			   MainActivity.this).setSmallIcon(R.drawable.ic_launcher)
			   .setContentTitle("My notification")
			   .setTicker("new message");
			   //自动管理通知栏消息
			   mBuilder.setAutoCancel(true);
			   mBuilder.setContentIntent(pendingIntent);
			   ///自定义布局
			   mBuilder.setContent(contentViews);
			   //使用默认提示音
			   mBuilder.setDefaults(Notification.DEFAULT_ALL);
			   NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
			   mNotificationManager.notify(1, mBuilder.build());
	       }	
	}
}

2.自定义布局文件(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="match_parent" 
     android:padding="10dp" 
     >
	<ImageView 
	       android:id="@+id/imageNo"
	       android:layout_width="wrap_content" 
	       android:layout_height="match_parent"
	       android:layout_alignParentLeft="true"
	       android:layout_marginRight="10dp"/>
	
		<TextView 
		     android:id="@+id/titleNo" 
		     android:layout_width="wrap_content" 
		     android:layout_height="wrap_content"
		     android:layout_toRightOf="@id/imageNo"/>
		
			  <TextView android:id="@+id/textNo" 
			          android:layout_width="wrap_content" 
			           android:layout_height="wrap_content" 
			           android:layout_below="@id/titleNo" 
			            android:layout_toRightOf="@id/imageNo">
			    </TextView>
		
</RelativeLayout>


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


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值