每次我用这个代码创建一个新的矩形时,它不工作,我只能画到指定的位置,如果我使用一个变量在执行时改变位置,它不会绘制任何东西。
在Asynctask方法中:
rect = new desenho(main.this, x, y);它这样调用:
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);
}
}发布于 2012-08-10 03:35:45
在我看来,您希望大小与位置无关。为此,必须在Canvas.drawRect中满足这些要求(左、上、右、下、画):
其中a,b是常数。示例:
c.drawRect(xPos, yPos, xPos + width - 1, yPos + height - 1, mPaint);在这个示例中,您可以看到
两者都是常数,→大小也是常数。
https://stackoverflow.com/questions/11890377
复制相似问题