【发布时间】:2012-08-09 19:13:13
【问题描述】:
每次我用这段代码创建一个新的矩形时,它都不起作用,我只能绘制到指定的位置,如果我在执行时使用变量来改变位置,它不会绘制任何东西。
在 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);
}
}
【问题讨论】:
-
你的背景不是黑色的吧? :)。看起来您可能正在黑色背景上绘制黑色矩形。您也可以尝试使用调试器单步执行代码,以查看调用 drawRect 时的值。
-
在这种情况下它不绘制任何东西,只有我这样做:c.drawRect(5, 5, width-5, 100, mPaint);
-
没有背景是白色的,我检查了 system.out 上的值,它们是正确的..我不知道出了什么问题......也许原因是 AsyncTaskMethod ?
标签: android dynamic android-asynctask draw shapes