【起航计划 026】2015 起航计划 Android APIDemo的魔鬼步伐 25 App->Notification->Status Bar 状态栏显示自定义的通知布局,省却声音、震动
2016-01-03 19:56
579 查看
这个例子的Icons Only 和 Icons and marquee 没有什么特别好说明的。
而Use Remote views in balloon 介绍了可以自定义在Extended Status bar显示Notification的Layout,Extended Status Bar缺省显示Notification 是一个图标后接文字,对应大多数情况是够用了。但如果有需要也可以使用自定义的Layout在Extented Status bar显示Notification,方法是通过RemoteView:
为了和缺省的Status Bar Layout有所区别,我们在/res/status_bar_balloon.xml 在增加一个ImageView:左右各显示一个图标,中间为文字。
![](http://www.imobilebbs.com/wordpress/wp-content/uploads/2011/05/20110509004.png)
Use default values where applicable 介绍使用缺省声音,震动或是两者的方法:
注:例子中使用了同样的Notification ID :R.layout.status_bar_notifications ,因此每次调用mNotificationManager.notify 都会更新同一个Notification。
而Use Remote views in balloon 介绍了可以自定义在Extended Status bar显示Notification的Layout,Extended Status Bar缺省显示Notification 是一个图标后接文字,对应大多数情况是够用了。但如果有需要也可以使用自定义的Layout在Extented Status bar显示Notification,方法是通过RemoteView:
private void setMoodView(int moodId, int textId) { // Instead of the normal constructor, we're going to use the one with no args and fill // in all of the data ourselves. The normal one uses the default layout for notifications. // You probably want that in most cases, but if you want to do something custom, you // can set the contentView field to your own RemoteViews object. Notification notif = new Notification(); // This is who should be launched if the user selects our notification. notif.contentIntent = makeMoodIntent(moodId); // In this sample, we'll use the same text for the ticker and the expanded notification CharSequence text = getText(textId); notif.tickerText = text; // the icon for the status bar notif.icon = moodId; // our custom view RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.status_bar_balloon); contentView.setTextViewText(R.id.text, text); contentView.setImageViewResource(R.id.icon, moodId); notif.contentView = contentView; // we use a string id because is a unique number. we use it later to cancel the // notification mNotificationManager.notify(MOOD_NOTIFICATIONS, notif); }
为了和缺省的Status Bar Layout有所区别,我们在/res/status_bar_balloon.xml 在增加一个ImageView:左右各显示一个图标,中间为文字。
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android” android:orientation=”horizontal” android:baselineAligned=”false” android:gravity=”center_vertical” android:layout_width=”wrap_content” android:layout_height=”wrap_content”> <ImageView android:id=”@+id/icon” android:layout_width=”wrap_content” android:layout_height=”wrap_content” android:layout_marginRight=”10dip” /> <TextView android:id=”@+id/text” android:layout_width=”wrap_content” android:layout_height=”wrap_content” android:textColor=”#ffffffff” /> <ImageView android:id=”@+id/icon1″ android:layout_width=”wrap_content” android:layout_height=”wrap_content” android:layout_marginRight=”10dip” /> </LinearLayout>
![](http://www.imobilebbs.com/wordpress/wp-content/uploads/2011/05/20110509004.png)
Use default values where applicable 介绍使用缺省声音,震动或是两者的方法:
int default = Notification.DEFAULT_SOUND; //Notification.DEFAULT_SOUND //Notification.DEFAULT_VIBRATE //Notification.DEFAULT_ALL notification.defaults = defaults;
注:例子中使用了同样的Notification ID :R.layout.status_bar_notifications ,因此每次调用mNotificationManager.notify 都会更新同一个Notification。
相关文章推荐
- 【起航计划 025】2015 起航计划 Android APIDemo的魔鬼步伐 24 App-&gt;Notification-&gt;Notifying Service Controller service中使用Notification
- 【起航计划 024】2015 起航计划 Android APIDemo的魔鬼步伐 23 App-&gt;Notification-&gt;IncomingMessage 状态栏通知
- 【起航计划 023】2015 起航计划 Android APIDemo的魔鬼步伐 22 App-&gt;Menu-&gt;Inflate from XML 使用xml资源展示菜单
- 【起航计划 022】2015 起航计划 Android APIDemo的魔鬼步伐 21 App-&gt;Launcher Shortcuts 为某个非主Activity在Home Screen上建立一个快捷方式
- 【起航计划 021】2015 起航计划 Android APIDemo的魔鬼步伐 20 App-&gt;Intents createChooser
- 【起航计划 020】2015 起航计划 Android APIDemo的魔鬼步伐 19 App-&gt;Dialog Dialog样式
- 【起航计划 019】2015 起航计划 Android APIDemo的魔鬼步伐 18 App-&gt;Device Admin 设备管理器 DeviceAdminReceiver DevicePolicyManager PreferenceActivit
- 【起航计划 018】2015 起航计划 Android APIDemo的魔鬼步伐 17 App-&gt;Alarm-&gt;Alarm Service
- 【起航计划 017】2015 起航计划 Android APIDemo的魔鬼步伐 16 App-&gt;Alarm-&gt;Alarm Controller Alarm事件 PendingIntent Schedule AlarmManager
- 【起航计划 016】2015 起航计划 Android APIDemo的魔鬼步伐 15 App-&gt;Activity-&gt;Wallpaper 系统壁纸作为当前Activity的背景
- 【起航计划 015】2015 起航计划 Android APIDemo的魔鬼步伐 14 App-&gt;Activity-&gt;Translucent Blur 模糊背景
- 【Android 界面效果49】RecyclerView高度随Item自适应
- 【Android 界面效果48】Android-RecyclerView-Item点击事件设置
- 【Android 界面效果47】RecyclerView详解
- 【React】 详解下一代开源混合应用框架Reapp
- Android中隐式调用Activity
- 【起航计划 014】2015 起航计划 Android APIDemo的魔鬼步伐 13 App-&gt;Activity-&gt;Translucent 半透明Activity Theme.Translucent
- 【起航计划 013】2015 起航计划 Android APIDemo的魔鬼步伐 12 App-&gt;Activity-&gt;SetWallpaper 设置壁纸 WallpaperManager getDrawingCache使用
- 【起航计划 012】2015 起航计划 Android APIDemo的魔鬼步伐 11 App-&gt;Activity-&gt;Save &amp; Restore State onSaveInstanceState onRestoreInstance
- 【起航计划 011】2015 起航计划 Android APIDemo的魔鬼步伐 10 App-&gt;Activity-&gt;Reorder Activities 后退栈 Intent FLAG