专栏名称: 开发者全社区
分享和推送Java/Android方向的技术和文章,让你成为这方面的大牛,让你每天都成长一点。同时,我们也会邀请BAT的大牛分享原创!
目录
相关文章推荐
stormzhang  ·  来自李子柒的压迫感 ·  昨天  
鸿洋  ·  理解Android ... ·  昨天  
鸿洋  ·  AndroidManifest中uses-l ... ·  1 周前  
51好读  ›  专栏  ›  开发者全社区

Android自定义View:一个类似于进度和打卡进度的自定义view

开发者全社区  · 公众号  · android  · 2017-01-20 11:40

正文

相关阅读:

吊炸天!74款APP完整源码!

123个微信小程序源码分享(附下载)

[干货]2017已来,最全面试总结——这些Android面试题你一定需要

作者:givemeacondom
原文链接:http://blog.csdn.net/givemeacondom/article/details/52780772

如下图:

看GIF岂不是更好


这个view在现在的app中挺常见的,基本都是这个套路,


之前写过一个可以双向滑动的和这个view的类似,那个滑动的view处理的onTouch事件,以及判断了我们应该滑动哪个小球,有兴趣的可以看下之前的连接
双向滑动的SeekBar:http://blog.csdn.net/givemeacondom/article/details/52397589


这个就比较简单了,都是静态的绘制,唯一的交互就是UI中的签到按钮,点击一次通知自定义view绘制;


  • 透漏自定义属性

  • 确定view的size,以及处理测量模式

  • 根据确定的比例,计算我们自定义view中需要的坐标(背景,矩形区域,圆形的白色点,以及选中状态下的,对号的path坐标)

  • 然后就是绘制,透漏外界设置数据接口


上面就是实现的思路,我们一步步看下代码,最后会奉上源代码的下载链接;

这是自定义属性的抽取

 

   
   
   
   
   

自定义view中获取属性


确定自定义view的大小

根据需求我们的这个view默认充满屏幕,所以只需要处理height的测量模式即可


计算我们需要绘制的内容坐标,这个其实是view的思路的最重要的,我们需要知道我们要绘制的东西在那个坐标上,大概就是初中坐标系的知识,回想一下,基本都能绘制出来,至于怎么绘制,就是谷歌提供给我们的API没什么技术难度,


计算每个小球的位置



脑细胞累死了,休息休息下,拿着计算好的坐标去canvas绘制吧



重要的在这里,源代码下载地址

https://github.com/GuoFeilong/BehivorDemo

希望大家多多star谢谢!



Java和Android大牛频道

欢迎关注我们,一起讨论技术,扫描和长按下方的二维码可快速关注我们。搜索微信公众号:JANiubility。

公众号:JANiubility