公司做的应用有个需求,ListView item 的背景是一张图片,而且还要是圆角,没想到其他法子,只好写自定义了。
先上图,
实现思路,
1,继承RelativeLayout
2,定义自定义属性(背景图片,圆角半径)
3,构造函数中初始化自定义属性
4,处理背景图片适应控件宽高和圆角
5,绘制背景图片
6,调用super.onDraw绘制其他内容
写自定义控件,我的方法是,一开始不定义自定义属性,需要的属、资源性全部在构造方法里面初始化,等实现想要的效果以后再去添加自定义属性,初始化自定义属性。
接下来上代码
/**
* 圆角图片背景的相对布局
* @author Vitor Lee
*/
public class RoundBGRelativeLayout extends RelativeLayout {
/**默认圆角半径*/
private static final int DEFAULT_CORNER_RADIUS=6;
/**背景图片*/
private Bitmap mBg;
/**圆角半径*/
private int mC