所以我想做的是在android中动画一个盒子。在我的drawView.java中,
public void box(int x1, int x2, int y1, int y2) {
paint.setColor(Color.WHITE);
paint.setStrokeWidth(3);
canvas.drawLine(x1, y1, x2, y1, paint);
canvas.drawLine(x1, y2, x2, y2, paint);
canvas.drawLine(x1, y1, x1, y2, paint);
canvas.drawLine(x2, y1, x2, y2, paint);
}
在MainActivity的onCreate方法中,我有以下代码。其中DV是调用DrawView DV类的对象;调用DV.box(x1,x2,y1,y2)时会收到NULLPOINTER。如何解决此问题,为什么会出现此错误?
Display display = getWindowManager().getDefaultDisplay();
x1 = display.getWidth()/3;
y1 = display.getHeight()/3;
x2 = display.getWidth()-display.getWidth()/3;
y2 = display.getHeight()- display.getHeight()/3;
DV.box(x1, x2, y1, y2);
DV = new DrawView(this);
preview.addView(DV);
拥有方法框的全部目的是,我可以覆盖前一个框,以便绘制一个全新的框。我做错了吗?还有另一种方法吗?
最佳答案
交换两行:
DV.box(x1, x2, y1, y2);
DV = new DrawView(this);
这样您就可以在引用
DV
之前实例化它。DV = new DrawView(this);
DV.box(x1, x2, y1, y2);
同样,它是变量和字段以小写字母开头的标准Java约定。