Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 以编程方式绘制多个矩形_Android_Drawrect - Fatal编程技术网

Android 以编程方式绘制多个矩形

Android 以编程方式绘制多个矩形,android,drawrect,Android,Drawrect,我想画这种长方形,但我画不出来。我试图把一个循环内,但id并没有显示任何东西。我的代码片段如下: public class MainActivity extends ActionBarActivity { DrawView drawView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); drawView = new

我想画这种长方形,但我画不出来。我试图把一个循环内,但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);
    }
公共类DrawView扩展视图{
Context=getContext();
油漆=新油漆();
公共绘图视图(上下文){
超级(上下文);
}
@凌驾
公共空白onDraw(画布){
int l=50;
int t=50;
int r=100;
int b=100;

对于(int i=0;i,您的DrawView实例不会添加到活动布局中。

尝试:


您的onDraw()版本将不起作用。您在循环中调用invalidate()。invalidate()将导致对onDraw()的调用。因此,您的onDraw()调用实际上是递归的。

我刚刚注意到这个问题。无论如何,谢谢。我接受您的回答。让我看看它是否有效
setContentView(drawView);