位置: 编程技术 - 正文

android自定义之 5.0 风格progressBar(android 自定义drawable)

编辑:rootadmin
最近做项目,用到了ProgressBar ,就想到了要使用Android5.0 的效果,就随手实现了一下。效果图:大概的思路:1. 圆圈通过Canvas去绘制2.圆圈的动画通过Animator去控制代码:1.绘制圆的代码是很简单的,@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);canvas.drawArc(arcRectf, startAngle &#; incrementAngele , sweepAngle, false, arcPaint) ; if (animatorSet == null || !animatorSet.isRunning()) {startAnimation() ;}}通过canvas.draw Arc 去绘制 startAngle则是绘制开始的角度 通过加上 incrementAngle这一个变量是为了更好去做动画控制。2.动画控制代码: (这个才是最重要的代码)private void startAnimation(){if (animatorSet != null && animatorSet.isRunning()) {animatorSet.cancel() ; // 取消动画 }animatorSet = new AnimatorSet() ; //设置一个动画集合AnimatorSet set = circuAnimator(); // 创建运行一圈动画的AnimatorSetanimatorSet.play(set) ; animatorSet.addListener(new AnimatorListener() {private boolean isCancel = false ; @Overridepublic void onAnimationStart(Animator animation) {}@Overridepublic void onAnimationRepeat(Animator animation) {}@Overridepublic void onAnimationEnd(Animator animation) {if (!isCancel) {startAnimation() ; // 不停的去循环动画}}@Overridepublic void onAnimationCancel(Animator animation) {isCancel = true ;}}) ;animatorSet.start() ;}//默认的动画时间private int DEFULT_DURATION = ;/** * 循环的动画 */private AnimatorSet circuAnimator(){//从小圈到大圈ValueAnimator holdAnimator1 = ValueAnimator.ofFloat(incrementAngele &#; DEFULT_MIN_ANGLE , incrementAngele &#; f) ; holdAnimator1.addUpdateListener(new AnimatorUpdateListener() {@Overridepublic void onAnimationUpdate(ValueAnimator animation) {incrementAngele = (float) animation.getAnimatedValue() ;}}) ; holdAnimator1.setDuration(DEFULT_DURATION ) ; holdAnimator1.setInterpolator(new LinearInterpolator()) ;ValueAnimator expandAnimator = ValueAnimator.ofFloat(DEFULT_MIN_ANGLE , DEFULT_MAX_ANGLE) ;expandAnimator.addUpdateListener(new AnimatorUpdateListener() {@Overridepublic void onAnimationUpdate(ValueAnimator animation) {sweepAngle = (float) animation.getAnimatedValue() ;incrementAngele -= sweepAngle ;invalidate() ; }}) ;expandAnimator.setDuration(DEFULT_DURATION) ;expandAnimator.setInterpolator(new DecelerateInterpolator(2)) ;//从大圈到小圈ValueAnimator holdAnimator = ValueAnimator.ofFloat(startAngle , startAngle &#; f) ;holdAnimator.addUpdateListener(new AnimatorUpdateListener() {@Overridepublic void onAnimationUpdate(ValueAnimator animation) {startAngle = (float) animation.getAnimatedValue() ;}});holdAnimator.setDuration(DEFULT_DURATION ) ; holdAnimator.setInterpolator(new LinearInterpolator()) ;ValueAnimator narrowAnimator = ValueAnimator.ofFloat(DEFULT_MAX_ANGLE , DEFULT_MIN_ANGLE) ;narrowAnimator.addUpdateListener(new AnimatorUpdateListener() {@Overridepublic void onAnimationUpdate(ValueAnimator animation) {sweepAngle = (float) animation.getAnimatedValue() ;invalidate() ; }}) ;narrowAnimator.setDuration(DEFULT_DURATION) ;narrowAnimator.setInterpolator(new DecelerateInterpolator(2)) ;AnimatorSet set = new AnimatorSet() ;set.play(holdAnimator1 ).with(expandAnimator) ;set.play(holdAnimator).with(narrowAnimator).after(holdAnimator1);return set ; }OK。这个实现思路主要就是Animator的动画运用,很简单的方式,可以随手练习一个Animator的使用。没有什么难点。网盘源码下载地址:

推荐整理分享android自定义之 5.0 风格progressBar(android 自定义drawable),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android自定义ui,android自定义控件入门与实战,android自定义控件步骤,android自定义属性详解,android自定义属性详解,android 自定义drawable,android 自定义dialog,android 自定义view三个方法,内容如对您有帮助,希望把文章链接给更多的朋友!

github地址:

android自定义之 5.0 风格progressBar(android 自定义drawable)

博客园地址:

版权声明:本文为博主原创文章,未经博主允许不得转载。

Intent启动系统组件(activity,service,BroadReceiver)-android学习之旅(四十九) android提供了统一的编程模型Intent来启动系统的组件,这样提供了松耦合性,是一种mvc的编程模式版权声明:本文为博主原创文章,未经博主允许不得转

Android学习【Android内核编译流程和错误笔记】 博客:

Android自定义之流式布局 流式布局,好处就是父类布局可以自动的判断子孩子是不是需要换行,什么时候需要换行,可以做到网页版的标签的效果。今天就是简单的做了自定义

标签: android 自定义drawable

本文链接地址:https://www.jiuchutong.com/biancheng/371004.html 转载请保留说明!

上一篇:随着ScrollView的滑动,渐渐的执行动画View(scrollview怎么用)

下一篇:Intent启动系统组件(activity,service,BroadReceiver)-android学习之旅(四十九)(通过intent可以启动哪些组件)

  • 运输发票税率6%和3%区别在哪
  • 需要出口
  • 纳税调整项目包括哪些?请简单列举
  • 税法规定固定资产最低价格
  • 开票人和复核人收款人能是一个人吗
  • 个人写的收据要留身份证复印件吗
  • 汽车购买者
  • 企业向个人借款是否合法
  • 酒店购买餐具会计分录
  • 已认证未抵扣的进项怎么填写
  • 公司补缴社保协议书
  • 增值税怎么纳税比率
  • 少付了几毛钱会计分录
  • 建筑业预缴税款都要填哪些表
  • 事业单位支付方式
  • 收发差错率
  • 公司拆迁安置所得的补偿款税务怎么处理
  • 口腔医院的发票有什么用
  • 图书发票没有明细能报销吗?
  • 印花税计提比例是多少
  • 个人取得利息需要缴纳增值税吗
  • 单利和复利的计算区别
  • 分期付款融资账务处理
  • 收到财政拨款开什么票据
  • 自己是公司法人可以给自己发工资吗
  • 试营业生产的样品怎么做账?
  • 准予抵扣的进项税额有哪些
  • 开模具公司要什么设备
  • 出口的会计分录
  • 耕地占用税计入无形资产吗
  • 框架采购合同如何计贴印花税?
  • 费用开两次发票怎么入账?
  • 手动设定ip地址后连不上网
  • 利润的计算公式excel
  • 对增值税发票开具方面有何要求?
  • 如何解决连接宽带的方法
  • 事业单位专项款不能购买资产吗
  • yolov5输出result
  • Yii2 rbac权限控制之菜单menu实例教程
  • js如何把字符串转换成数字
  • 上海广为
  • 这可能是最好的144平米小平层户型
  • react 入门
  • 帝国cms app
  • 微众银行贷款到期晚2天还
  • 维修费的会计分录怎么写
  • 出租固定资产的租金收入
  • 股本和库存股有什么区别
  • 银行收到几分钱怎么做账
  • mongodb exception: $concat only supports strings, not NumberInt32解决办法
  • 企业合并结果
  • 无形资产摊销如何操作
  • 销货退回的账务如何处理
  • 销售额多少需要纳税
  • 收回上年度拨款怎么做账
  • 收到社保稳岗补贴需要交税吗
  • 固定资产的核算内容包括
  • 小规模纳税人劳务派遣可以差额征税吗
  • 房地产竣工验收后结转收入和成本
  • 装修费一定要摊销吗
  • 税前扣除的职工福利费怎么算
  • 2020年专项扣除怎么填
  • 小企业会计准则和企业会计准则的区别
  • 食品算日用品吗
  • mysql两个表连接
  • windows7用户
  • win8自带软件
  • windows xp快捷键设置在哪
  • win10电脑开机蓝屏怎么进入安全模式
  • android app 源码
  • Unity3D HTTP协议 网络通信 post get
  • shell脚本用法
  • angular js表达式
  • 安卓用什么抓包
  • js动态生成html页面
  • 批量ssh登录
  • android开发遇到的技术难点
  • jquery基础教程详解
  • 手机陌陌卸载还有记录吗
  • 季度财务会计报告怎么写
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设