MainActivity代码
package com.example.f04_notification; import android.os.Bundle; import android.app.Activity; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.support.v4.app.NotificationCompat; import android.view.View; import android.widget.Button; import android.widget.RemoteViews; public class MainActivity extends Activity { private NotificationManager manager; private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button=(Button)this.findViewById(R.id.button1); //获取系统服务 manager=(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub NotificationCompat.Builder builder=new NotificationCompat.Builder(MainActivity.this); RemoteViews remoteViews=new RemoteViews(getPackageName(), R.layout.notifiaction); //因为android api的限制,自定义通知仍需要set small icon,setContentTittle,setContentText builder.setSmallIcon(R.drawable.ic_launcher); builder.setContentText("hello world!"); builder.setContentTitle("Android"); //以上内容仍必须设置一遍 remoteViews.setTextViewText(R.id.textView1, "通知来了"); remoteViews.setImageViewResource(R.id.imageView1, R.drawable.ic_launcher); Intent intent=new Intent(MainActivity.this,MainActivity.class); //pendingintent的flag分为四个FLAG_CANCEL_CURRENT,FLAG_NO_CREATE,FLAG_ONE_SHOT,FLAG_UPDATE_CURRENT PendingIntent pendingIntent=PendingIntent.getActivity(MainActivity.this, 1, intent, PendingIntent.FLAG_ONE_SHOT); builder.setContent(remoteViews); builder.setContentIntent(pendingIntent); manager.notify((int)System.currentTimeMillis(), builder.build()); } }); } }
<?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" > <ImageView android:id="@+id/imageView1" android:contentDescription="@string/hello_world" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="27dp" android:layout_marginTop="33dp" android:src="@drawable/ic_launcher" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/imageView1" android:layout_marginLeft="76dp" android:layout_toRightOf="@+id/imageView1" android:text="@string/hello_world" /> </RelativeLayout>
Android开发之自定义Notification(源代码分享),布布扣,bubuko.com
Android开发之自定义Notification(源代码分享)
原文:http://blog.csdn.net/gerogelin/article/details/21861883