zoukankan      html  css  js  c++  java
  • 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));
    }

    以上。

  • 相关阅读:
    Devops运维交流群
    CentOS7.5下二进制安装MySQL5.7.26
    CentOS7.5安装MySQL8.0.18简易流程
    Kubernetes中的Pod生命周期详解
    Linux系统发行版本及其区别
    数据库设计
    Vue 起步
    CSS 中的伪类和伪元素
    百度智能云虚拟主机 Typecho 分类功能失效 | 开启伪静态地址
    C#开发BIMFACE系列39 网页集成开发3:审图系统中三维模型比对
  • 原文地址:https://www.cnblogs.com/ldq2016/p/8298105.html
Copyright © 2011-2022 走看看