热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java安卓有进度条吗,【已解决】给Android程序添加进度条(ProgressBar)

【问题】对于Android程序Songtaste歌曲下载器来说,已经实现了基本的下载功能了:并且已经实现了hook函数,用于及时获得对应的

【问题】

对于Android程序

Songtaste歌曲下载器

来说,已经实现了基本的下载功能了:

并且已经实现了hook函数,用于及时获得对应的下载进度:

现在接着去实现,添加对应的进度条,及时显示下载的进度。

1.看到了,本身的Graphical Layout中,就有对应的进度条:

08c568f7e36620199c4ff4aed9c31a82.png

所以手动拖动一个进去。

2.发现默认是Normal的,所以又去掉,换成对应的Horizontal的:

4c886f2faef65c8d686b03d8805bdfd0.png

3.然后就是想办法,如何和代码关联起来了。

参考:

去添加配置:

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:gravity="center" >

android:id="@+id/pgbDownload"

style="?android:attr/progressBarStyleHorizontal"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:max="100"

android:progress="0"

android:layout_gravity="center_vertical"

/>

以及添加代码:int percent = (int)((currentSize * 100) / totalSize);

pgbDownload = (ProgressBar) findViewById(R.id.pgbDownload);

pgbDownload.setProgress(percent);

结果发现没效果,虽然设置了值了,但是没显示。

4.还是去看官网解释:

结果官网中代码,貌似也是直接设置setProgress就可以了的。

后来参考:

才注意到,自己上述的findViewById,是放在每次调用的地方了。

应该放到初始化才对。。。

5.但是,结果还是无法实现即时更新,虽然调试都确保了,的确是每次进度更新,会调用到setProgress的。

关于进度条不更新,而只能在最后突然更新到100%的问题,详见:

6.后来又折腾:

最后终于可以正常,添加了进度条,可以正常更新:

1d8c5e6d0e65ff29b96e447ef0166e0d.png

更新完毕最后,可以提示下载完毕:

6ba8f3293ac1f09c9ffe05c97e8e4468.png

【总结】

总的来说,Android下面的开发,还是比较麻烦的。很多常见的控件,都不能完整的封装,都还是需要另外注意很多事情,才能正常工作的。

至少对于VS2010中的C#开发,还是麻烦多了。



推荐阅读
author-avatar
Sunlight丶丶丶
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有