Android onDraw大量调用

时间:2010-12-23 11:20:41

标签: android

在以下代码段中,onDraw方法被调用大约10-15次。任何人都可以解释这种行为

LinearLayout ll = new LinearLayout(this);
        View v = new View(this) {
            @Override
            protected void onDraw(Canvas canvas) {
                // TODO Auto-generated method stub
                System.out.println("large view on draw called");
                super.onDraw(canvas);
            }
        };
        v.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 2000));
        LinearLayout ll2 = new LinearLayout(this);
        ll2.addView(v);
        ScrollView sv = new ScrollView(this);
        sv.addView(ll2);
        ll.addView(sv);
        LinearLayout ll1 = new LinearLayout(this);
        ll1.addView(ll);

1 个答案:

答案 0 :(得分:3)

每当您执行可能影响窗口小部件的操作时,窗口小部件都将重新绘制。将小部件放在容器中可能会影响它。将容器放在另一个容器中可能会影响它。

你不应该假设onDraw()被调用多少次,除了它会被调用很多次因此需要很快。