背景:
由于最近系统的学习了一下自定义view和动画,当知识看完之后不知道自己掌握了多少,而且平时和朋友聊天说起过高亮控件,所以写了一个,不足之处希望大家多多指教。
效果图:
高亮控件.gif
如图:我点击屏幕上“第一个“button,这个按钮会变为高亮,并且在该控件的右上角会有一个文字说明的button;接下来我点击这个文字说明的button,会把高亮控件移动到下一个,知道没有之后,高亮消失,恢复正常页面(当然什么时候开启高亮,什么时候消失高亮,都是可以通过方法控制的)。
这种效果的实现肯定需要使用自定义动画来完成。而自定义动画特别有趣的就是Canvas对于裁剪的时候,有一个这样的方法:
public boolean clipRect(float left, float top, float right, float bottom,
@NonNull Region.Op op)
这里特别说一下Region.Op这个参数
该参数的作用就是在剪下多个区域下来的情况,当这些区域有重叠的时候,这个参数决定重叠部分该如何处理,多次裁剪之后究竟获得了哪个区域
废话不多说,一图胜千言:
注:此图不是我画的,是从网上找的,如有侵权,请联系删除。
通过这种方式我们就可以在屏幕上抠出我们所需要的高亮的部分。
下面放出我的代码
具体的实现我在代码中注释的很清楚,大家可以直接看我的代码,觉得好的希望给一个star。
项目地址:
网友评论