人生必须的知识就是引人向光明方面的明灯。这篇文章主要讲述Android ProgressBar手动控制开始和停止相关的知识,希望能为你提供帮助。
这两天有个需求,点击按钮从SD卡解压压缩包,并读取压缩包内txt文档内容,然后在街面上显示出来。毕竟IO操作很耗时,如果文件较大会花费不少时间。所以,在处理数据的时候能给个进度就好了。我们通常的做法就是,点击按钮后弹出一个加载框或者加载进度条,等数据处理结束后,再让对话框消失。
但是现在的需求是,用一个布局,左侧显示刷新列表,右侧显示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 ProgressBar手动控制开始和停止】以上。
推荐阅读
- [MyBatis]mapperLocations属性通配符的使用
- 可集成到APP的车架号识别sdk
- DataGuard apply比较慢
- Android Service的全面解析
- swappiness参数设置与内存交换
- Linux Shell命令
- Linux alias命令
- Linux Sed正则表达式
- Linux重命名正则表达式