Android自定义view------带动画的progressbar

1.概述

       这篇文章是继Android自定义密码输入框 -  的第二个自定义view,第二个自定义view是带动画的progressbar,下面来看一个效果(从MP4转换成gif效果真的差别好大,中间的动画本来是连贯的平滑过度的,转成gif后跨度好大)。

Android自定义view------带动画的progressbar_第1张图片
自定义进度条

2.实现

2.1 思路

        本来看到UE图及动画的时候想着用系统的progressbar添加位移动画就好,做好后让设计看后还OK,但设计老大看到后说严格按照动画来,不是直接从下面弹出来的,好吧,那就需要自定义view。

        实现这样的效果就需要在一段时间内,不断地更新圆角矩形的高度,view不断地绘制,这样就实现了从底部平滑的顶上去。要实现这样的效果需要用到ValueAnimator,让view的高度从0到最大高度。

        当然后期为了拓展,也添加了一些属性,主要有边框宽度,边框颜色,背景颜色,是否绘制边框,圆角大小,进度颜色值(代码设置)如图:

Android自定义view------带动画的progressbar_第2张图片
属性

2.2 实现

①首先,在onSizeChanged获取到view的宽高,如图所示:

Android自定义view------带动画的progressbar_第3张图片
获取view的宽高

②开始执行初始动画,代码如图所示:

Android自定义view------带动画的progressbar_第4张图片
初始动画

③进度动画,为了每次设置进度不0开始绘制,加了一个currentProgress,记录上次的进度,下次进度从此才开始绘制。

Android自定义view------带动画的progressbar_第5张图片
设置进度
Android自定义view------带动画的progressbar_第6张图片
进度监听

④设置进度颜色。

Android自定义view------带动画的progressbar_第7张图片
设置进度颜色值

3.最后

完整源码:CustomView/CProgressBar.java at master · xiaschina/CustomView · GitHub

你可能感兴趣的:(Android自定义view------带动画的progressbar)