首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在新位置多次绘制矩形不起作用

在新位置多次绘制矩形不起作用
EN

Stack Overflow用户
提问于 2012-08-10 03:13:14
回答 1查看 2.2K关注 0票数 0

每次我用这个代码创建一个新的矩形时,它不工作,我只能画到指定的位置,如果我使用一个变量在执行时改变位置,它不会绘制任何东西。

在Asynctask方法中:

代码语言:javascript
复制
rect = new desenho(main.this, x, y);

它这样调用:

代码语言:javascript
复制
public class desenho extends View{
    
    int x, y;
    Paint mPaint = new Paint();
    
    public desenho(Context context, int x, int y) {
        super(context);
        this.x = x;
        this.y = y;
        mPaint.setStrokeWidth(3);
        mPaint.setStyle(Paint.Style.STROKE);
        mPaint.setColor(Color.BLACK);
    }
    
    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        setMeasuredDimension(width, y);
    }
    
    @Override
    protected void onDraw(Canvas c) {
        // TODO Auto-generated method stub
        super.onDraw(c);
        c.drawRect(5, y, width-5, y+x, mPaint);
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-10 03:35:45

在我看来,您希望大小与位置无关。为此,必须在Canvas.drawRect中满足这些要求(左、上、右、下、画):

  • left - right =a
  • 顶部-底部= b

其中a,b是常数。示例:

代码语言:javascript
复制
c.drawRect(xPos, yPos, xPos + width - 1, yPos + height - 1, mPaint);

在这个示例中,您可以看到

  • left - right = xPos - (xPos + width - 1) =1-width
  • 顶部-底部= yPos - (yPos + height - 1) =1-高度

两者都是常数,→大小也是常数。

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

https://stackoverflow.com/questions/11890377

复制
相关文章

相似问题

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