实现圆角图片的方式有三种,上篇文章中是使用了Xfermode,这篇文章则将总结剩下的两种clipPath、BitmapShader。这里我们跟上一篇一样继承自ImageView。
公共部分
无论是使用哪种方法,都需要自定义的属性和在构造器中获得相应的属性,因此将这部分放到一起。
自定义属性
我们这个圆角图片可以定义图片的圆角度数,因此需要自定义这个属性如些:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="RoundImageView">
<attr name="radius" format="dimension" />
</declare-styleable>
</resources>
在构造器中获得自定义属性
private static final String TAG = "RoundImageView";
private Paint mPaint;
private Xfermode xfermode;
/** 图片缩放的比例 */
private float scale = 1.0f;
/** 圆角半径 */
private float mRadius;
/** 默认的圆角半径 */