以编程方式绘制多个矩形

时间:2014-12-10 17:20:47

标签: android drawrect

enter image description here

我正在尝试绘制这种矩形,但我无法做到。我试图放入一个循环,但id没有显示任何内容。我的代码段如下:

 public class MainActivity extends ActionBarActivity {
    DrawView drawView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    drawView = new DrawView(this);
    drawView.setBackgroundColor(Color.WHITE);
    setContentView(R.layout.activity_main);


    }
 }

DrawView类:

  public class DrawView extends View {
Context context=getContext();
 Paint paint = new Paint();


public DrawView(Context context) {
    super(context);            
}

@Override
public void onDraw(Canvas canvas) {
    int l=50;
    int t=50;
    int r=100;
    int b=100;

    for(int i=0;i<1;i++){
        paint.setColor(Color.BLACK);
        paint.setStrokeWidth(3);
        canvas.drawRect(l, t, r, b, paint);
        paint.setColor(Color.WHITE);
        canvas.drawRect(l+3, t+3, r-3, b-3, paint);

        t=t+150;
        b=b+150;
        invalidate(l, t, r, b);
    }

2 个答案:

答案 0 :(得分:1)

您的DrawView实例未添加到您的活动布局中。

尝试:

setContentView(drawView);

答案 1 :(得分:1)

您的onDraw()版本无效。你在循环中调用invalidate()。 invalidate()导致对onDraw()的调用。所以你的onDraw()调用实际上是递归的。