美文网首页Android自定义View、Viewgroup程序员
自定义View学习之路(五)————彩虹环

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

作者: 饮水思源为名 | 来源:发表于2018-07-27 14:52 被阅读14次

简介:

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

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

使用:

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

心得和体会:

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

相关文章

网友评论

    本文标题:自定义View学习之路(五)————彩虹环

    本文链接:https://www.haomeiwen.com/subject/rifgmftx.html