Android ProgressBar手动控制开始和停止
2018-01-16 18:26
363 查看
这两天有个需求,点击按钮从SD卡解压压缩包,并读取压缩包内txt文档内容,然后在街面上显示出来。毕竟IO操作很耗时,如果文件较大会花费不少时间。所以,在处理数据的时候能给个进度就好了。我们通常的做法就是,点击按钮后弹出一个加载框或者加载进度条,等数据处理结束后,再让对话框消失。
但是现在的需求是,用一个布局,左侧显示刷新列表,右侧显示ProgressBar。那么问题来了,ProgressBar显示的很大,而且打开后就一直在转动,无法控制。那么就来解决这两个问题吧~
然后,写一个xml文件progressbar_circle.xml,设置ProgressBar的转动效果。
到这里,大小固定,转动效果也有了。
结束的时候,设置setIndeterminateDrawable和setProgressDrawable为固定的图片,即可停止转动。
以上。
但是现在的需求是,用一个布局,左侧显示刷新列表,右侧显示ProgressBar。那么问题来了,ProgressBar显示的很大,而且打开后就一直在转动,无法控制。那么就来解决这两个问题吧~
第一个问题:控制ProgressBar的大小和样式
首先,创建一个style样式,设置宽高和图片,具体如下:<style name="ProgressCircle"> <item name="android:indeterminateDrawable">@drawable/ic_refresh_grey_600_24dp</item> <item name="android:minWidth">25dp</item> <item name="android:minHeight">25dp</item> <item name="android:maxWidth">60dp</item> <item name="android:maxHeight">60dp</item> </style>
然后,写一个xml文件progressbar_circle.xml,设置ProgressBar的转动效果。
<?xml version="1.0" encoding="utf-8"?> <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/ic_refresh_grey_600_24dp" android:fromDegrees="0" android:pivotX="50%" android:pivotY="50%" android:toDegrees="360"> </rotate>
到这里,大小固定,转动效果也有了。
第二个问题:手动控制转动的开始和停止
开始的时候,设置setIndeterminateDrawable和setProgressDrawable为定义的xml文件,即可开始转动。结束的时候,设置setIndeterminateDrawable和setProgressDrawable为固定的图片,即可停止转动。
/** * 开始刷新动画 */ public void startRefresh() { progressbar_refresh.setIndeterminateDrawable(getResources().getDrawable( R.drawable.progressbar_circle)); progressbar_refresh.setProgressDrawable(getResources().getDrawable( R.drawable.progressbar_circle)); } /** * 停止刷新动画 */ public void stopRefresh() { progressbar_refresh.setIndeterminateDrawable(getResources().getDrawable( R.drawable.ic_refresh_grey_600_24dp)); progressbar_refresh.setProgressDrawable(getResources().getDrawable( R.drawable.ic_refresh_grey_600_24dp)); }
以上。
相关文章推荐
- Android实战之按键控制录音开始停止取消,显示时间与声贝
- Android Handler和ProgressBar实现进度条的开始,暂停,停止,后退和循环
- 学习日记--Android VideoView播放视频控制:开始、暂停、快进
- Android Service 详解四:开始停止service
- Android Service 详解四:开始停止service
- 【Android】Android开发可以手动进行控制的跑马灯效果,包括从左到右,以及从右到左,
- java线程控制,当stop按钮就停止,当start按钮就开始运行,当按stop时程序又停止的实现方法
- [置顶] 【Android】Android开发可以手动进行控制的跑马灯效果,包括从左到右,以及从右到左,
- 使用Handler控制进度条,完成开始、暂停、继续、停止操作
- android Handler控制进度条(ProgressBar)实例
- Android控制所有播放器的音频切换上下首歌、播放、停止
- Android 控制线程的开始关闭
- 一个没有停止的android闹钟,一旦开始就要把歌唱完
- Android:Activity和ProgressBar共存时停止顺序问题
- Android VideoView播放视频控制:开始、暂停、快进(3)
- android原生TextView怎么控制是否开始跑走马灯
- Android VideoView播放视频控制:开始、暂停、快进(3)
- android开发——分秒计时器(可 开始/暂停/继续/停止)
- 网页播放器 windowsmediaplay中控制从wmv的指定时间开始播放,指定时间停止播放
- 【Android】Android开发可以手动进行控制的跑马灯效果,包括从左到右,以及从右到左,