• 欢迎访问风的记忆博客网站,如有疑问请加作者QQ或者微信联系。作者QQ:524100248,微信号:sendtion。

Android ProgressBar手动控制开始和停止

安卓教程 sendtion 8年前 (2017-03-03) 5266次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

这两天有个需求,点击按钮从 SD 卡解压压缩包,并读取压缩包内 txt 文档内容,然后在街面上显示出来。毕竟 IO 操作很耗时,如果文件较大会花费不少时间。所以,在处理数据的时候能给个进度就好了。我们通常的做法就是,点击按钮后弹出一个加载框或者加载进度条,等数据处理结束后,再让对话框消失。

但是现在的需求是,用一个布局,左侧显示刷新列表,右侧显示 ProgressBar。那么问题来了,ProgressBar 显示的很大,而且打开后就一直在转动,无法控制。那么就来解决这两个问题吧~

Android ProgressBar 手动控制开始和停止

第一个问题:控制 ProgressBar 的大小和样式

首先,创建一个 style 样式,设置宽高和图片,具体如下:


1
2
3
4
5
6
7
<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 的转动效果。


1
2
3
4
5
6
7
8
<?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 为固定的图片,即可停止转动。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
 * 开始刷新动画
 */
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));
}

以上。

欢迎大家尝试!有问题请指出!

2017.03.03  sendtion


风的记忆 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Android ProgressBar 手动控制开始和停止
喜欢 (5)
[sendtion@126.com]
分享 (0)
sendtion
关于作者:
一个不断奋斗追逐梦想的少年~
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址