Android编程实现通知栏进度条效果的方法示例

Android编程实现通知栏进度条效果的方法示例,第1张

概述本文实例讲述了Android编程实现通知栏进度条效果的方法。分享给大家供大家参考,具体如下:

本文实例讲述了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编程实现通知栏进度条效果的方法示例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1142968.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存