0
我在调用drawLine()后更新画布时出现问题;在ActionBaryActivity中更新画布
这里是我的代码:
public class Map extends ActionBarActivity {
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Paint p = new Paint();
Log.v("Tag", "in here");
Log.v("Tag", Integer.toString(customView.lines.size()));
switch (item.getItemId()) {
case R.id.action_undo:
customView.lines.remove(customView.lines.size() - 1);
Canvas c = new Canvas();
for (Line line: customView.lines){
Log.v("Tag", "in here2");
c.drawLine(line.startX,line.startY,line.endX,line.endY,p);
}
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
我想在画布上直接调用此方法后更新。但是我知道如何做到这一点的唯一方法是使用invalidate()方法,并且这只能在View中完成。有关如何完成这项工作的任何建议?非常新的android开发。
谢谢!
我已经做有一个观点。但是,问题是我需要从MenuItem获取结果后画一些东西。例如,我有MenuItem是“绘制”。我如何在活动和视图之间传达这些信息? – user3750474 2015-02-10 21:06:04
添加一个设置布尔值的方法,检查onDraw方法中的布尔值,如果它是真的绘制线条,那么不会。在MenuItem的处理程序中,在视图上调用此方法 – 2015-02-10 21:11:36