小试view的执行过程,此是入门,高手绕道。
--------------------------------------------------------------------------------
此为抛砖引玉,个人看官自己发挥。
结果如下:
- 12-05 22:23:03.587: D/mDebug(9715): TestView context, attrs=@2131034112
- 12-05 22:23:03.597: D/mDebug(9715): onFinishInflate
- 12-05 22:23:03.667: D/mDebug(9715): onSizeChanged,w=240,h=282,oldw=0,oldh=0
- 12-05 22:23:03.727: D/mDebug(9715): onDraw
- 12-05 22:23:03.757: D/mDebug(9715): onDraw
[size=l代码如下:[/size]
- public class TestView extends View {
- public TestView(Context context) {
- super(context);
- Log.d("mDebug", "TestView context");
- }
- public TestView(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
- Log.d("mDebug", "TestView context,attrs,defStyle attrs="+attrs.getAttributeValue(0));
- }
- public TestView(Context context, AttributeSet attrs) {
- super(context, attrs);
- Log.d("mDebug", "TestView context, attrs="+attrs.getAttributeValue(0));
- }
- @Override
- protected void onDraw(Canvas canvas) {
- // TODO Auto-generated method stub
- super.onDraw(canvas);
- Log.d("mDebug", "onDraw");
- }
- @Override
- protected void onFinishInflate() {
- // TODO Auto-generated method stub
- super.onFinishInflate();
- Log.d("mDebug", "onFinishInflate");
- }
- @Override
- protected void onSizeChanged(int w, int h, int oldw, int oldh) {
- // TODO Auto-generated method stub
- super.onSizeChanged(w, h, oldw, oldh);
- Log.d("mDebug", "onSizeChanged,w="+w+",h="+h+",oldw="+oldw+",oldh="+oldh);
- }
- }
问题: 构造函数的context为何物,attrs从何处来
看到这篇文章貌似解决了以上问题。
http://blog.csdn.net/z103594643/article/details/6755017
扩展地址:http://developer.android.com/reference/android/view/View.html