本文实例讲述了AndroID编程实现通知栏进度条效果的方法。分享给大家供大家参考,具体如下:
/** * 通知管理工具类 * * @description: * @author ldm * @date 2016-5-3 上午9:39:56 */public class NotificationUtil { private Context mContext; // notificationmanager : 是状态栏通知的管理类,负责发通知、清楚通知等。 private notificationmanager manager; // 定义Map来保存Notification对象 private Map<Integer,Notification> map = null; public NotificationUtil(Context context) { this.mContext = context; // notificationmanager 是一个系统Service,必须通过 getSystemService()方法来获取。 manager = (notificationmanager) mContext .getSystemService(Context.NOTIFICATION_SERVICE); map = new HashMap<Integer,Notification>(); } public voID showNotification(int notificationID) { // 判断对应ID的Notification是否已经显示, 以免同一个Notification出现多次 if (!map.containsKey(notificationID)) { // 创建通知对象 Notification notification = new Notification(); // 设置通知栏滚动显示文字 notification.tickerText = "开始下载xx文件"; // 设置显示时间 notification.when = System.currentTimeMillis(); // 设置通知显示的图标 notification.icon = R.drawable.ic_launcher; // 设置通知的特性: 通知被点击后,自动消失 notification.flags = Notification.FLAG_auto_CANCEL; // 设置点击通知栏 *** 作 Intent in = new Intent(mContext,MainActivity.class);// 点击跳转到指定页面 PendingIntent pIntent = PendingIntent.getActivity(mContext,in,0); notification.contentIntent = pIntent; // 设置通知的显示视图 RemoteVIEws remoteVIEws = new RemoteVIEws( mContext.getPackagename(),R.layout.notification_contentvIEw); // 设置暂停按钮的点击事件 Intent pause = new Intent(mContext,MainActivity.class);// 设置跳转到对应界面 PendingIntent pauseIn = PendingIntent.getActivity(mContext,0); // 这里可以通过Bundle等传递参数 remoteVIEws.setonClickPendingIntent(R.ID.pause,pauseIn); /********** 简单分隔 **************************/ // 设置取消按钮的点击事件 Intent stop = new Intent(mContext,MainActivity.class);// 设置跳转到对应界面 PendingIntent stopIn = PendingIntent .getActivity(mContext,0); // 这里可以通过Bundle等传递参数 remoteVIEws.setonClickPendingIntent(R.ID.cancel,stopIn); // 设置通知的显示视图 notification.contentVIEw = remoteVIEws; // 发出通知 manager.notify(notificationID,notification); map.put(notificationID,notification);// 存入Map中 } } /** * 取消通知 *** 作 * * @description: * @author ldm * @date 2016-5-3 上午9:32:47 */ public voID cancel(int notificationID) { manager.cancel(notificationID); map.remove(notificationID); } public voID updateProgress(int notificationID,int progress) { Notification notify = map.get(notificationID); if (null != notify) { // 修改进度条 notify.contentVIEw.setProgressbar(R.ID.pbar,100,progress,false); manager.notify(notificationID,notify); } }}
布局文件notification_contentvIEw.xml
<linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" xmlns:tools="http://schemas.androID.com/tools" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:orIEntation="vertical" > <TextVIEw androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="通知栏下载测试" /> <linearLayout androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:gravity="center" androID:orIEntation="horizontal" > <Progressbar androID:ID="@+ID/pbar" androID:layout_wIDth="match_parent" androID:layout_height="4dp" androID:layout_weight="1" /> <button androID:ID="@+ID/pause" androID:layout_wIDth="match_parent" androID:layout_height="30dp" androID:layout_weight="2" androID:text="暂停" /> <button androID:ID="@+ID/cancel" androID:layout_wIDth="match_parent" androID:layout_height="30dp" androID:layout_weight="2" androID:text="取消" /> </linearLayout></linearLayout>
Activity中简单测试发通知,项目中根据需要使用,比如文件下载中要更新进度,取消时进行对应 *** 作等。
/** * Notification是AndroID项目中具体的状态栏通知对象,可以设置icon、文字、提示声音、振动等等参数。 * 常用属性: * icon:设置通知上显示的图标 * tickerText:设置通知中滚动显示的文字 * text:设置通知的内容 * flags:设置通知的特性 * defaults:设置通知默认效果 * when:设置通知显示的时间 * contentVIEw:设置通知显示的内容视图 * sound:设置通知的声音 * contentIntent:设置点击通知时的跳转等 *** 作 *//** * 在通知栏中实现下载进度条样式展示Demo * * @description: * @author ldm * @date 2016-5-3 上午8:40:37 */public class MainActivity extends ActionBaractivity { private NotificationUtil mNotificationUtil; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); mNotificationUtil = new NotificationUtil(this); findVIEwByID(R.ID.send).setonClickListener(new OnClickListener() { @OverrIDe public voID onClick(VIEw v) { mNotificationUtil.showNotification(100);// 测试发出通知 } }); }}
AndroID通知功能可以参考前面一篇https://www.oudahe.com/p/28773/
更多关于AndroID相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》
希望本文所述对大家AndroID程序设计有所帮助。
您可能感兴趣的文章:android项目实现带进度条的系统通知栏消息android实现通知栏下载更新app示例Android开发之禁止下拉通知栏的方法Android程序版本更新之通知栏更新下载安装Android实现通知栏透明的方法Android消息通知栏的实现方法介绍关于Android中点击通知栏的通知启动Activity问题解决Android编程实现显示在标题上的进度条功能【附源码下载】Android 七种进度条的样式Android中实现Webview顶部带进度条的方法android自定义进度条渐变色View的实例代码 总结以上是内存溢出为你收集整理的Android编程实现通知栏进度条效果的方法示例全部内容,希望文章能够帮你解决Android编程实现通知栏进度条效果的方法示例所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)