progress记录

实现一个需求:在点击刷新之后,出现一个转动的图标,刷新完成后停止;

记录:

  1. 转动的实现,在drawable中添加一个xml:


    
        
    

其实这是一个旋转动画继承自animation类,相关属性解释如下:

android:fromDegrees="0"            
#初始角度
android:toDegree="360"
#结束时角度,值为正时顺时针旋转,值为负时逆时针旋转
android:pivot"50%"
#旋转中心x轴坐标,取值可以是数值(50)、百分数(50%)、百分数p(50%p),当取值为数值时,缩放起点为View左上角坐标加具体数值像素,当取值为百分数时,表示在当前View左上角坐加上View宽度的具体百分比,当取值为百分数p时,表示在View左上角坐标加上父控件宽度的具体百分比
android:pivotY="50%" 
#同上
android:duration="700"
#动画持续时间,毫秒为单位
android:fillAfter="true"
#动画结束后,保持结束时的状态
android:fillBefore="true"
#动画结束后,恢复为初始状态
android:fillEnabled="true"
#效果同上
android:repeatCount="5"  
#重复次数,取值为-1时无限重复,默认动画执行一次
android:repeatMode ="reverse"
#重复模式,有reverse和restart两个值,前者为倒序回放,后者为重新开始android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
#没做测试,后续看看
  1. 在layout中添加progress时使用上述动画:

设置完成后再activity中显示即是一直旋转的图标,那我们需要设置其停止和开始转动

/**
 * 开始刷新动画
 */
public void loadingStartRefresh() {
    mLoading.setIndeterminateDrawable(getResources().getDrawable(
            R.drawable.wifi_scan_loading));
    mLoading.setProgressDrawable(getResources().getDrawable(
            R.drawable.wifi_scan_loading));
    mLoading.setVisibility(View.VISIBLE);
}

/**
 * 停止刷新动画
 */
public void loadingStopRefresh() {
    mLoading.setVisibility(View.INVISIBLE);
    mLoading.setIndeterminateDrawable(getResources().getDrawable(
            R.drawable.setting_wifi_loading_1));
    mLoading.setProgressDrawable(getResources().getDrawable(
            R.drawable.setting_wifi_loading_1));
}

其实看code很容易就知道,我们只是设置了setIndeterminateDrawable的资源而已,当相关资源设置为旋转的xml时即为旋转的,设置为固定图片时他就是停止的,不过我这里还加了一个显示和隐藏的逻辑而已

以上为今天旋转的记录;

你可能感兴趣的:(progress记录)