android 从无到有动画,从无到有打造一个炫酷的进度条效果

本文介绍如何在Android中从无到有创建一个动态、酷炫的进度条效果,包括值动画、Path、贝塞尔曲线、Camera与Matrix的使用。详细讲解了五个关键步骤:值动画刷新界面、状态切换、PathMeasure实现进度、阻尼动画和进度框翻转。项目代码已上传至GitHub,供读者参考学习。
摘要由CSDN通过智能技术生成

1460000006465670

今天这篇文章要介绍的是一个酷炫的进度条的设计和实现,在进度的文字内容、颜色以及切换的图片等都可以自由设置。我们先看下效果 (创意受Dribbble的启发):

1460000006760492

1460000006465658

整体效果还是不错的吧,哈哈,我自己还是比较满意的~项目地址已上传至 github ,欢迎star、fork。那么下面我们就开始从无到有实现一下这个酷炫的进度效果吧。

项目地址:SpecialProgressBar。

实现思路

仔细观察下这个效果,它有不同的动态效果和不同的进度状态组成,那么实现的思路就用效果切换的不同状态来进行切换绘制,对应数值的变化用到值动画、Path、贝塞尔曲线、Camera与Matrix等相关工具,因为涉及的地方比较多,这里我就主要说下大体的实现思路以及相关注意点。

主要分五点来进行分析:

一、利用值动画变换数值然后invalidate刷新界面,形成动画效果。

二、在不同的临界值切换不同的状态。

三、利用PathMeasure与Path来实现进度效果。

四、利用阻尼动画实现进度条回弹效果。

五、利用Camera和Matrix实现进度框翻转效果。

一、利用值动画变换数值然后invalidate刷新界面,形成动画效果

对位置、大小、颜色的切换主要使用的ValueAnimator来进行变化,看下代码片段:

ValueAnimator va = ValueAnimator.ofInt((int)(Math.min(getWidth(), getHeight())- mBgPaint.getStrokeWidth()*2)/2,(int) mBgPaint.getStrokeWidth());

va.setInterpolator(new AnticipateInterpolator());

va.setDuration(800);

va.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {

@Override

public void onAnimationUpdate(ValueAnimator animation

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值