在Android的Notification中显示进度条

本文介绍如何在Android的通知栏中实现进度条效果。通过使用Notification和RemoteViews结合自定义布局,可以实现在通知栏显示进度更新的过程。文章提供了一个具体的例子,展示了如何在一个独立的线程中更新进度,并通过Handler回调更新进度条。
摘要由CSDN通过智能技术生成

转帖:http://www.abcfun.cn/n176c12.aspx

 

如果你在使用Android Market下载应用可能会发现StatusBar拉下后区域除了显示常规的图标、文字和描述外还有一个进度条指示。在Android的Notification中如何加入ProgressBar呢?我们发现NotificationManager类只涉及一个提示的显示和取消,相关的细节还是在构造Notification中实现,该类的contentView属性可以帮助我们制定一个RemoteViews的布局,通过setProgressBar来实现对RemoteViews的进度指示做刷新工作,如果你做过Android上的Widget,则不会对RemoteViews陌生吧,实现图片和文字的修改可以通过setImageViewResource或setTextViewText方法实现。Android开发网需要说明的是: RemoteViews在构造时第二个参数需要制定一个xml的布局文件。类似RemoteViews(getPackageName(),R.layout.android123); 而对于它的设置进度,4个参数中,第一个为RemoteViews中的ProcessBar ID,第二个参数为进度条的最大范围,第三个是当前的进度指示一般我们在单独的线程中处理逻辑,可以通过Handler实时回调显示状态比如setProgressBar(R.id.myProcessBar,maxProcess, currentPos, false);

 

 

 

 

转帖:http://www.abcfun.cn/n176c12.aspx

//

Specifically, in RemoveView, you can update the Progress bar. So combining some of the example code in each link, I get something like this:

public class MyActivity extends Activity { 
   
private static final int PROGRESS = 0x1; 
   
private static final int MAX_PROGRESS = 100; 
 
   
private int mProgressStatus = 0; 
 
   
private Handler mHandler = new Handler(); 
 
   
protected void onCreate(Bundle icicle) { 
       
super.onCreate(icicle); 
 
       
//define Notification 
       
//... 
 
       
RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.custom_notification_layout); 
        contentView
.setProgressBar(R.id.progress_bar, MAX_PROGRESS, mProgressStatus, false); 
        notification
.contentView = contentView; 
 
       
// Start file upload in a background thread 
       
new Thread(new Runnable() { 
           
public void run() { 
               
while (mProgressStatus < MAX_PROGRESS) { 
                    mProgressStatus
= doWork(); 
 
                   
// Update the progress bar 
                    mHandler
.post(new Runnable() { 
                       
public void run() { 
                            contentView
.setProgressBar(R.id.progress_bar, MAX_PROGRESS, mProgressStatus, false); 
                       
} 
                   
}); 
               
} 
           
} 
       
}).start(); 
   
} 
} 

转帖:http://stackoverflow.com/questions/2689729/progress-bar-in-notification-bar

You can use custom views in Notification, http://developer.android.com/intl/fr/guide/topics/ui/notifiers/notifications.html#CustomExpandedView
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值