扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
进度条常见的样式, 目前暂时没看到比较好用的框架, 或者说不好在原有的基础上扩展, 本框架的成员变量和方法几乎都是用protected 和 public, 给用户随便扩展.
创新互联公司是一家集网站建设,民丰企业网站建设,民丰品牌网站建设,网站定制,民丰网站建设报价,网络营销,网络优化,民丰网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
1. 这里没有渐变属性, 如果需要, 可参考每个ProView对应的详细文章.
2. 使用简介, 学习成本低, 属性一查即可知道
3. 支持用户在原有的基础扩展和修改, 每个成员变量几乎都有set和get方法.
① 例如: 对于画笔Paint可以用对应get方法取出, 然后设置对应的属性.
② 例如: 继承对应的View, 重写对应的方法进行覆盖.
如有问题和建议, 欢迎在评论区指出, 如果此框架对你有用, 欢迎点赞收藏
通过MediaPlayer调节。
系统自带的进度条的颜色比较单调,实际开发中使用较少,可以自定义进度条背景,新建一个progressbarbg.xml文件。gradient可以设置进度条的渐变色,android:endColor和android:startColor可以设置渐变开始和结束的颜色。定义完成以后,便可以使用。
在音乐进度,网络下载时,需动态加载进度条,默认情况下,设置进度条,使用setProgress即可。但有时除了动态设置进度,仍需要动态设置进度条颜色通过MediaPlayer播放音乐并获取进度,设置进度。
Android系统提供了两大类进度条样式,长形进度条(progressBarStyleHorizontal) 和圆形进度条(progressBarStyleLarge)。
android 进度条样式更改:
第一种
(默认样式(中等圆形))
第二种
(长方形进度条)
进度条用处很多,比如,应用程序装载资源和网络连接时,可以提示用户稍等,这一类进度条只是代表应用程序中某一部分的执行情况,而整个应用程序执行情况呢,则可以通过应用程序标题栏来显示一个进度条,这就需要先对窗口的显示风格进行设置"requestWindowFeature(Window.FEATURE_PROGRESS)"。
显示百分比需要自己计算加载的内容,以下以webview示例,webview加载网页的时候可以增加进度条:
1.从webview中获取设置
websettings
sws
=
webview.getsettings();
sws.setsupportzoom(true);
sws.setbuiltinzoomcontrols(true);
webview.setinitialscale(25);
webview.getsettings().setusewideviewport(true);
2.注册setwebchromeclient事件
webview.setwebchromeclient(new
webchromeclient()
{
public
void
onprogresschanged(webview
view,
int
progress)
{
//
activity和webview根据加载程度决定进度条的进度大小
//
当加载到100%的时候
进度条自动消失
//webviewprogressactivity.this.settitle("loading...");
//webviewprogressactivity.this.setprogress(progress
*
100);
if
(progress
==
100)
{
progressbar.setvisibility(view.gone);
//webviewprogressactivity.this.settitle("完成");
}
}
});
3.注意在onprogresschanged中处理进度,progress就是进度值。
由于Android的界面更新只能通过自己的UI线程进行操作,所以我们需要用到Handler在进行更新界面的操作。
1、声明变量
private Handler handler = new Handler();
private ProgressDialog progressDialog = null;
2、在开始进行网络连接时显示进度条对话框
progressDialog = ProgressDialog.show(MyActivity.this, "请稍等...", "获取数据中...", true);
3、在handler.post中进行界面更新
public void setListAdapter(){
handler.post(new Runnable() {
public void run() {
//将获取到的数据更新到列表中
MyListView.setAdapter(saImageItems);
}
}
});
4、开个新的线程进行网络连接获取数据
new Thread(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
//向服务器请求数据
mapList=MyAPI.getAllDatas();
setListAdapter(mapList);
//更新完列表数据,则关闭对话框
progressDialog.dismiss();
}}).start();
整个过程就这样完成了,下面是效果图:
Handler和ProgressBar实现进度条的开始,暂停,停止,后退和循环
一,涉及的handler类方法
1,
post(Runnable r)
Causes the Runnable r to be added to the message queue.将要执行的线程对象加到队列当中
2,
removeCallbacks(Runnable r)
Remove any pending posts of Runnable r that are in the message queue.移除队列当中未执行的线程对象
3,
postDelayed(Runnable r, long delayMillis)
Causes the Runnable r to be added to the message queue, to be run after the specified amount of time elapses.
将要执行的线程对象放入到队列当中,待时间结束后,运行制定的线程对象
二,编写程序
程序效果:实现进度条的开始,暂停,停止,后退和循环
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流