做项目有个地方要用圆形图片做头像,而美工只给了我一个方形图片。。
本来打算自己PS的,就先放着了。后来网上搜到可以通过代码来实现圆形头像,而且上次面试还被问到了怎么实现圆形图片。。。
于是这次动手用自定义控件的方法做出来了,就算又练习了一下自定义控件。
原理:这次用的方法主要是通过BitmapShader来实现,Shader是颜色填充器,比如画了个圆,如果设置了Shader,且设置Shader颜色为蓝色,则画出的圆内部就会被蓝色填充。而BitmapShader则是用图片来作为填充物,因此,我们将需要处理的图片放入 BitmapShader中,然后画一个圆,然后就会用之前的图像填充圆内部,然后就实现了圆形图片。同理也可以实现圆角矩形图片等效果。
控件功能:
1.根据画布大小,缩放处理的图片
2.提供两种模式:
AUTO模式,将画布大小作为圆形半径
MANUAL模式,手动设置圆形半径,截取图片居中部分,不影响画布大小
控件效果:
具体步骤和之前自定义控件的差不多,源码里进行了注释,直接看源码就行。