首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以编程方式绘制多个矩形

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

Stack Overflow用户
提问于 2014-12-11 01:20:47
回答 2查看 770关注 0票数 2

我正在试着画这种矩形,但我做不到。我试图放入一个循环中,但是id没有显示任何内容。我的代码片段如下:

代码语言:javascript
复制
 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类:

代码语言:javascript
复制
  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);
    }
EN

回答 2

Stack Overflow用户

发布于 2014-12-11 01:24:12

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

尝试:

代码语言:javascript
复制
setContentView(drawView);
票数 1
EN

Stack Overflow用户

发布于 2014-12-11 02:01:39

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27407082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档