Notification布局

齐北的小村 2012-02-24

     第一步:新建一个工程,命名为Notification;

      第二步:新建一个布局文件(即自定义的notification的布局文件:custom_notification.xml,内容如下:

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

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

android:layout_width="match_parent"

android:layout_height="match_parent">

<ImageView

android:id="@+id/image"

android:layout_width="wrap_content"

android:layout_height="fill_parent"

android:layout_alignParentLeft="true"

android:layout_marginRight="10dp"

android:contentDescription="@string/Image"/>

<TextView

android:id="@+id/title"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_toRightOf="@id/image"

style="@style/NotificationTitle"/>

<TextView

android:id="@+id/text"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_toRightOf="@id/image"

android:layout_below="@id/title"

style="@style/NotificationText"/>

</RelativeLayout>

<?xmlversion="1.0"encoding="utf-8"?>

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

android:layout_width="match_parent"

android:layout_height="match_parent">

<ImageView

android:id="@+id/image"

android:layout_width="wrap_content"

android:layout_height="fill_parent"

android:layout_alignParentLeft="true"

android:layout_marginRight="10dp"

android:contentDescription="@string/Image"/>

<TextView

android:id="@+id/title"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_toRightOf="@id/image"

style="@style/NotificationTitle"/>

<TextView

android:id="@+id/text"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_toRightOf="@id/image"

android:layout_below="@id/title"

style="@style/NotificationText"/>

</RelativeLayout>

          第三步:新建上面布局文件中引用到的styyes.xml文件,代码如下:

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

<resources>

<stylename="NotificationText"parent="android:TextAppearance.StatusBar.EventContent"/>

<stylename="NotificationTitle"parent="android:TextAppearance.StatusBar.EventContent.Title"/>

</resources>

<?xmlversion="1.0"encoding="utf-8"?>

<resources>

<stylename="NotificationText"parent="android:TextAppearance.StatusBar.EventContent"/>

<stylename="NotificationTitle"parent="android:TextAppearance.StatusBar.EventContent.Title"/>

</resources>

       第四步:修改java源文件,代码如下:

public class CusNotificationActivity extends Activity { 

privatestaticfinalintCUSTOM_VIEW_ID=1;

/**Calledwhentheactivityisfirstcreated.*/

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//Notificationnotification=newNotification();

inticon=R.drawable.ic_launcher;

CharSequencetickerText="Notification01";

longwhen=System.currentTimeMillis();

Notificationnotification=newNotification(icon,tickerText,when);

RemoteViewscontentView=newRemoteViews(getPackageName(),R.layout.custom_notification);

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

contentView.setTextViewText(R.id.title,"Customnotification");

contentView.setTextViewText(R.id.text,"Thisisacustomlayout");

notification.contentView=contentView;

IntentnotificationIntent=newIntent(this,CusNotificationActivity.class);

PendingIntentcontentIntent=PendingIntent.getActivity(CusNotificationActivity.this,0,notificationIntent,0);

notification.contentIntent=contentIntent;

Stringns=Context.NOTIFICATION_SERVICE;

NotificationManagermNotificationManager=(NotificationManager)getSystemService(ns);

mNotificationManager.notify(CUSTOM_VIEW_ID,notification);

}

}

publicclassCusNotificationActivityextendsActivity{

privatestaticfinalintCUSTOM_VIEW_ID=1;

/**Calledwhentheactivityisfirstcreated.*/

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//Notificationnotification=newNotification();

inticon=R.drawable.ic_launcher;

CharSequencetickerText="Notification01";

        long when = System.currentTimeMillis();

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

RemoteViewscontentView=newRemoteViews(getPackageName(),R.layout.custom_notification);

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

contentView.setTextViewText(R.id.title,"Customnotification");

contentView.setTextViewText(R.id.text,"Thisisacustomlayout");

notification.contentView=contentView;

IntentnotificationIntent=newIntent(this,CusNotificationActivity.class);

PendingIntentcontentIntent=PendingIntent.getActivity(CusNotificationActivity.this,0,notificationIntent,0);

notification.contentIntent=contentIntent;

Stringns=Context.NOTIFICATION_SERVICE;

NotificationManagermNotificationManager=(NotificationManager)getSystemService(ns);

mNotificationManager.notify(CUSTOM_VIEW_ID,notification);

}

}

相关推荐