一种实现迫不得已的圆角实现方案
该方案只针对那些“善变”的View如 SurfaceView、ListView、Viewpager等可滑动实现的圆角方案,一般情况下你不会用到,用到说明你已经基本无奈了。
这是一种经过调研后的“无奈之下”实现的圆角方案,其中需求背景是在ViewPager、ListView等可滑动系列View的圆角方案,并可在SurfaceView、TextureView上使用圆角。用background 设置一个带圆角的drawable,事实表明该方案只能实现当前View的一种背景圆角。重写ondraw试了好几种方案没有找到合适的实现方案(surfaceview、textureview无效),如果该View是一个ViewGroup系列,则子View还带有自己的“前景”效果。如ImageView设置了一个src,或surfaceView播放视频这种情况下,圆角将会失效。产品说了,不实现圆角不准下班陪老婆带孩子,mmp就有了如下“迫不得已”的实现方案。
实现原理
1、将属于四个角与圆角弧线并集的部分背景图获取到,将view的位置获取出来计算出内贴圆角矩形,将获取出来的背景图掏空一个圆角矩形
2、将掏空后的带四圆角图片贴到目标view上方,达到一种圆角效果
1、将属于四个角与圆角并集的部分背景图获取到
当程序员之前:
当程序员之后: