android,view的执行过程onDraw、onSizeChanged,onFinishInflate

小试view的执行过程,此是入门,高手绕道。

-------------------------------------------------------------------------------- 
此为抛砖引玉,个人看官自己发挥。 
结果如下:

  1. 12-05 22:23:03.587: D/mDebug(9715): TestView context, attrs=@2131034112
  2. 12-05 22:23:03.597: D/mDebug(9715): onFinishInflate
  3. 12-05 22:23:03.667: D/mDebug(9715): onSizeChanged,w=240,h=282,oldw=0,oldh=0
  4. 12-05 22:23:03.727: D/mDebug(9715): onDraw
  5. 12-05 22:23:03.757: D/mDebug(9715): onDraw

[size=l代码如下:[/size]

  1. public class TestView extends View {
  2. public TestView(Context context) {
  3. super(context);
  4. Log.d("mDebug", "TestView context");
  5. }
  6. public TestView(Context context, AttributeSet attrs, int defStyle) {
  7. super(context, attrs, defStyle);
  8. Log.d("mDebug", "TestView context,attrs,defStyle attrs="+attrs.getAttributeValue(0));
  9. }
  10. public TestView(Context context, AttributeSet attrs) {
  11. super(context, attrs);
  12. Log.d("mDebug", "TestView context, attrs="+attrs.getAttributeValue(0));
  13. }
  14. @Override
  15. protected void onDraw(Canvas canvas) {
  16. // TODO Auto-generated method stub
  17. super.onDraw(canvas);
  18. Log.d("mDebug", "onDraw");
  19. }
  20. @Override
  21. protected void onFinishInflate() {
  22. // TODO Auto-generated method stub
  23. super.onFinishInflate();
  24. Log.d("mDebug", "onFinishInflate");
  25. }
  26. @Override
  27. protected void onSizeChanged(int w, int h, int oldw, int oldh) {
  28. // TODO Auto-generated method stub
  29. super.onSizeChanged(w, h, oldw, oldh);
  30. Log.d("mDebug", "onSizeChanged,w="+w+",h="+h+",oldw="+oldw+",oldh="+oldh);
  31. }
  32. }

问题: 构造函数的context为何物,attrs从何处来

看到这篇文章貌似解决了以上问题。 
http://blog.csdn.net/z103594643/article/details/6755017

扩展地址:http://developer.android.com/reference/android/view/View.html

上一篇:解决apt-get安装软件包的时候遇到E: Sub-process /usr/bin/dpkg returned an error code (1)问题


下一篇:发现磁盘的shell