位置: 编程技术 - 正文

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可以启动哪些组件)

  • 购买汽车的印花税要计入汽车原值吗
  • 一般纳税人的税种有哪些
  • 汇票签收后可以撤回吗
  • 专利年费是不是只能一项一项交
  • 所有者权益是
  • 民间非营利机构加班费记什么科目
  • 免征的附加税是什么
  • 公司购车预计净残值率怎么计算
  • 差额拨款的事业单位属于预算单位吗
  • 工会签约有什么好处
  • 有留抵增值税怎么做账
  • 保证金转租金的会计处理
  • 期初建账以前年度损益调整怎么转?
  • 超过诉讼时效的答辩状怎么写
  • 进口产品再销售如何缴税
  • 考务费属于什么税目
  • 货运代理公司可以开运输费发票吗
  • 印花税购销比例
  • 简易计税的收入怎么做账
  • 销售额没有达到要求企业采取措施
  • 连年亏损的企业因为具有递延税金的优势
  • 不动产增值税总结
  • 增值税普票丢失的最新处理
  • 每月物业费怎么计算公式
  • 红字增值税专用发票信息表怎么填
  • 财务费用错记制造费用
  • 一般纳税人开税票
  • 做内账收入含税吗
  • 按产品的品种型号规格规定的计划
  • 一般纳税人车辆过户给个人开票几个点
  • 手机电脑排行
  • 白鹤芋的养殖方法和注意事项
  • 关联方借款利息所得税前扣除
  • 办公楼需要什么
  • Nginx-http-flv-module流媒体服务器搭建+模拟推流+flv.js在前端html和Vue中播放HTTP-FLV视频流
  • 待处理流动资产净损失
  • 当月缴纳上月未缴纳社保
  • 长期应付款核算范围有哪些
  • html中写php
  • PHP mysqli_free_result()与mysqli_fetch_array()函数详解
  • shift命令 向左移动参数
  • makefile 编译选项
  • lvs命令详解
  • python输入三科成绩
  • vue笔记大全
  • 记账凭证后面附发票吗
  • 帝国cms对接小程序
  • 土石方工程开票范围
  • 客户借款怎么做账
  • 销售折扣增值税例题
  • Mongodb中MapReduce实现数据聚合方法详解
  • 不良品扣款入什么科目
  • 什么各级工会的离休退休人员的待遇
  • 进项转出转到哪里去
  • 一般纳税人进销不符怎么办
  • 公账上的钱怎么提出来
  • 怎样计算税款
  • 费用报销票据规范要求
  • 小规模纳税人发票怎么开
  • 代开专票作废税已经交了如何做分录?
  • 预缴税款的会计处理
  • 对公账户提取备用金怎么做账
  • 税控盘服务费什么样的发票可以抵扣
  • 填制记账凭证有哪些
  • 删除默认操作系统选项
  • wcu.exe是什么
  • 优麒麟 apk
  • macbook的qq怎么更换背景
  • fs是什么文件夹
  • win7任务管理器怎么调回原来样子
  • win7正版提示
  • node stream原理
  • cocos2dx 3.17
  • windows下载安装
  • unity 3d代码
  • python简明
  • 一次$.getJSON不执行的简单记录
  • 登录电子税务局显示时间错误如果解决
  • 烟叶进口关税
  • 国税总局17号公告
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设