通知栏Notification自定义视图方法(显示进度条)
来源:互联网 发布:淘宝螺蛳粉哪家好 编辑:程序博客网 时间:2024/05/16 08:51
转自:http://www.devdiv.com/Android-%E9%80%9A%E7%9F%A5%E6%A0%8FNotification%E4%BD%BF%E7%94%A8%E8%87%AA%E5%AE%9A%E4%B9%89%E8%A7%86%E5%9B%BE%E6%96%B9%E6%B3%95%EF%BC%88%E6%98%BE%E7%A4%BA%E4%B8%80%E4%B8%AA%E8%BF%9B%E5%BA%A6%E6%9D%A1ProgressBar%EF%BC%89-thread-46580-1-1.html
通知栏Notification使用自定义视图方法,这里以显示进度条ProgressBar为例,具体效果不上图了,请参考在Android Market下载软件时通知栏的效果。
布局main.xml:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><Button android:id="@+id/bt1" android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="Notification测试"/><Button android:id="@+id/bt2" android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="清除Notification"/></LinearLayout>
自定义通知栏的布局:notification.xml文件,一个TextView显示下载中,下面一根进度条显示当前进度
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" ><TextView android:id="@+id/down_tv" android:layout_width="wrap_content" android:layout_height="fill_parent" android:textSize="20sp" android:textColor="#000000" android:text="下载中" /> <ProgressBar android:id="@+id/pb" android:layout_width="260dip" android:layout_height="wrap_content" style="?android:attr/progressBarStyleHorizontal" android:layout_gravity="center_vertical"/> </LinearLayout>程序代码:
package com.pocketdigi.Notification;import android.app.Activity;import android.app.Notification;import android.app.NotificationManager;import android.app.PendingIntent;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.RemoteViews;public class main extends Activity { /** Called when the activity is first created. */ int notification_id=19172439; NotificationManager nm; Handler handler=new Handler(); Notification notification; int count=0; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button bt1=(Button)findViewById(R.id.bt1); bt1.setOnClickListener(bt1lis); Button bt2=(Button)findViewById(R.id.bt2); bt2.setOnClickListener(bt2lis); //建立notification,前面有学习过,不解释了,不懂看搜索以前的文章 nm=(NotificationManager)getSystemService(NOTIFICATION_SERVICE); notification=new Notification(R.drawable.home,"图标边的文字",System.currentTimeMillis()); notification.contentView = new RemoteViews(getPackageName(),R.layout.notification); //使用notification.xml文件作VIEW notification.contentView.setProgressBar(R.id.pb, 100,0, false); //设置进度条,最大值 为100,当前值为0,最后一个参数为true时显示条纹 //(就是在Android Market下载软件,点击下载但还没获取到目标大小时的状态) Intent notificationIntent = new Intent(this,main.class); PendingIntent contentIntent = PendingIntent.getActivity(this,0,notificationIntent,0); notification.contentIntent = contentIntent; } OnClickListener bt1lis=new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub showNotification();//显示notification handler.post(run); } }; Runnable run=new Runnable(){ @Override public void run() { // TODO Auto-generated method stub count++; notification.contentView.setProgressBar(R.id.pb, 100,count, false); //设置当前值为count showNotification();//这里是更新notification,就是更新进度条 if(count<100) handler.postDelayed(run, 200); //200毫秒count加1 } }; OnClickListener bt2lis=new OnClickListener(){ @Override public void onClick(View v) { nm.cancel(notification_id); //清除notification } }; public void showNotification(){ nm.notify(notification_id, notification); }}
效果图:
- 通知栏Notification自定义视图方法(显示进度条)
- 通知栏Notification自定义视图方法(显示进度条)
- 通知栏Notification使用自定义视图方法(显示一个进度条ProgressBar)
- 通知栏Notification使用自定义视图方法(显示一个进度条ProgressBar)
- Notification通知、普通通知、大视图通知、进度条通知, 子线程可以操作时度条、流动进度条通知、自定义通知
- Android 使用Notification自定义通知栏显示
- Notification通知实现自定义和带进度条
- 自定义通知(notification)
- 自定义通知(进度条)
- Android 检查更新版本(带有通知栏,进度条,Notification)
- 带进度条的通知栏Notification
- Notification进度条通知
- adroid自定义notification通知栏
- Notification(通知栏通知)
- Android种使用Notification实现通知管理以及自定义通知栏(Notification示例四)
- Notification消息通知(消息合并且显示条数,自定义消息通知内容布局)
- Notification(通知栏)
- 通知栏(Notification)
- DataTable search keyword
- 简单歌词控件
- 简单歌词控件2
- 另一种客户机服务器方案
- C/C++ 字符编码的转换(ut8、gb2312)
- 通知栏Notification自定义视图方法(显示进度条)
- Linux-world-2012-January->8.1 (minicom)
- 社论 公民信息安全无保障 谁来承担罪责
- Linux下通过系统调用(API)和C语言库函数对文件进行访问
- 关于Hadoop中5个主要的守护进程的作用
- 实验1-5 用工作区组织工程
- 探索windows虚拟内存
- (转)C++中extern “C”含义深层探索
- 英语简明语法系列之---名词