【问题标题】:canvas.drawCircle draw nothingcanvas.drawCircle 什么都不画
【发布时间】:2015-06-24 18:13:45
【问题描述】:

这是我的绘画观点:

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    this.canvas = canvas;
    canvas.drawCircle(this.getWidth()/2,this.getHeight()/2,100, locationPaint);
    canvas.drawCircle(this.getWidth()/2,this.getHeight()/2,300, locationPaint);
    //canvas.drawRect(this.getWidth()/2,this.getHeight()/2,100,100, locationPaint);
}

public void drawCircle(float centerX, float centerY, float width, float height){
    int ratio = 10;
    canvas.drawCircle(centerX/ratio,centerY/ratio,width/ratio,circlePaint);
    canvas.drawCircle(this.getWidth()/2,this.getHeight()/2,200, locationPaint);
}

但是当我调用drawCircle时,它没有在视图上绘制任何东西,我不知道为什么......你知道我是否必须在某个地方调用onDraw吗?

【问题讨论】:

  • “不要打电话给我们,我们会打电话给你” - onDraw 是由系统调用的,而不是你
  • 你试过画线吗?
  • 前两个canvas.drawCircle正在绘制。是 drawCircle 函数中的绘制不绘制
  • 您的locationPaint 是否已正确初始化?是否有例如。颜色设置?
  • 请不要在onDraw方法之外调用任何与画布相关的方法

标签: java android view draw


【解决方案1】:
@Override
protected void onDraw(Canvas canvas){
    super.onDraw(canvas);
    canvas.drawCircle(this.getWidth/2, this.getHeight/2, 100, locationPaint();
    canvas.drawCircle(this.getWidth()/2,this.getHeight()/2,300, locationPaint);
}

删除您创建的 drawcircle 方法。 我不认为你需要 super.onDraw() reason 你不需要 this.canvas = canvas;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-16
    • 1970-01-01
    • 2013-05-29
    • 2012-01-18
    • 2018-05-16
    • 1970-01-01
    相关资源
    最近更新 更多