位置: 编程技术 - 正文

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

  • 即征即退需要缴纳税款吗
  • 什么是本期应纳税所得额
  • 借款合同印花税最新政策2023年
  • 税负转嫁的概念是什么
  • 运输发票抵扣联丢了
  • 业务往来中接受礼品道德吗
  • 企业为员工承担的个税可以税前扣除吗
  • 总承包单位可以分包吗
  • 非专利技术转让计入什么科目
  • 房产开发后自用需要交土地增值税吗
  • 未取得房屋产权证的房屋法院可以拍卖吗
  • 合同能源管理项目账务处理
  • 增值税即征即退2023政策
  • 存货卖出亏损会怎么样
  • 资金账号和交易账号一样吗
  • 零余额帐户如何转账
  • 进口货物的价格国内销售需要考虑的税
  • 对公网银支付方式可以选哪些
  • 新企业会计准则的内容
  • 关联企业间无偿资金的占用属于借款费用吗
  • 生产前和生产后经常长喘气怎么回事
  • 一般纳税人从按照简易计税方法依照3%
  • 建筑企业之前的工作内容
  • 工业企业税负率一般控制在多少?
  • 特定行业如何界定
  • 营业外支出调减应该填在纳税调整项目明细表哪一项
  • 公司的固定资产如何转变为股东资产
  • 固定资产折旧从入账时间算还是购入时间算
  • 销售购物卡如何开票
  • 异地缴纳附加税怎么申报
  • 增值税发票已经认证可以撤销吗?
  • 在王者荣耀中怎么找个妹子
  • 王者荣耀怎么快速获得金币
  • 怎么简单快速的辨别是铝是锡
  • 自定义输入是什么
  • 当月发工资当月报个税吗
  • win10设置变成竖排
  • 关闭自动重新启动会怎样
  • 股东分红如何缴纳企业所得税
  • 二手房交易需缴哪些税
  • 投标报名费怎么定
  • 减免税费是几级科目
  • 仓库盘点单模板
  • nerf代码
  • 自学黑客技术入门教程
  • 微信小程序怎么制作自己的小程序
  • mysql零基础入门教程完整
  • mongodb应用实例
  • 本年缴纳上年的所得税填年报
  • d级企业预缴增值税如何申报
  • sqlserver2012完全卸载
  • 其他应付款计入资产负债表哪个科目
  • MySQL数据库介绍
  • 个税申报哪些可以减免
  • 其他权益工具投资是什么意思
  • 购买土地缴纳契税会计分录
  • 如果发票和实际不一样
  • 2020年防洪基金计算公式
  • 跨年发票应该如何处理
  • 企业停产期间在生产违法吗
  • 资产负债表的资产按流动性大小排列
  • 单位组织提供员工服务
  • 小规模纳税人收入是含税还是不含税
  • 投资性房地产讲解
  • 开票和不开票
  • 银行承兑汇票怎么看
  • solaris 磁盘管理
  • gho文件硬盘安装
  • 装xp系统鼠标键盘没有驱动
  • mac怎么设置开机默认windows
  • win7怎么删除右键菜单
  • windows10禁用独立显卡
  • 批处理中for语句的哪个参数表示目录
  • cmd命令可以干嘛
  • android监听应用打开
  • js prototype constructor
  • 重庆国税12366电子税务局官网入口
  • 个人所得税全年不到60000,单月超过
  • 第二税务所干什么的
  • 湖北低保查询网站官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设