前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自定义View学习之路(五)————彩虹环

自定义View学习之路(五)————彩虹环

作者头像
饮水思源为名
发布2018-09-06 12:51:12
5070
发布2018-09-06 12:51:12
举报
文章被收录于专栏:Android小菜鸡Android小菜鸡

简介:

  走往android的进阶之路,避不开自定义View的学习和绘制。这里以绘制一个可用的彩虹环为例。开始系统的学习View的绘制。 彩虹环需求:

  • 这是一个持续的动画
  • 背景颜色是上一次动画的动画颜色
  • 当所有颜色循环完后从头开始
  • 当一个颜色绘制完整个圆环后开始下次个颜色的绘制

彩虹环

使用:

  • 可以通过ringSpeed以及ringWidth在XML中设置动画速度和圆环宽度
  • 圆环大小直接通过宽高度设置即可
  • 对外提供设置:颜色集合设置、圆环宽度设置、圆环速度设置。
  • 对外提供获取:当前动画进度获取

心得和体会:

  • 该View没有重写onMeasure方法。所以如果warp-content会铺满整个屏幕等同于match-parent。因为这个View大部分情况是会指定宽高度的。
  • 由于控件的宽高度并不一定是正方形。而圆的半径是通过宽高度的一半来获取的。所以,需要先取宽高度的小的值计算半径,当然得记得减去圆环的宽度。
  • 同样在控件为矩形的情况下保证彩虹环出现在控件中间。需要利用Rect对其定型左上坐标以及右下坐标。利用圆心坐标和半径计算。
  • 绘制圆时记得设置空心以及消除锯齿
  • 绘制圆时提供圆心坐标、半径以及画笔即可
  • 绘制圆弧的时候提供Rect、起始角度(-90)、当前进度(0~360)、useCneter(ture时会在圆心处生出一个类似时钟的指针跟着旋转)、画笔。
  • 以上绘制均是划线,圆环需要通过setStrokeWidth设置圆环宽度。可以理解为线的宽度
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.07.27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介:
  • 使用:
  • 心得和体会:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档