自定义控件的几个注意点
如果自定义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新的对象
未完待续