自定义控件的几个注意点
- 如果自定义View需要设置一个不变的背景图,为了提高效率,你可以在构造方法中直接设置背景图片。无需在onDraw中绘制
Bitmap backgroundBitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.your_png);
if (backgroundBitmap != null) {
setBackgroundDrawable(new BitmapDrawable(backgroundBitmap));
}
- 不要在构造方法中获取View的尺寸,因为此时View的w,h都是0.正确的做法为:
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
// w h is the size of this view
}
尽量不要在onDraw中反复的new新的对象
未完待续