我目前有两个班级,MainActivity
和DrawView
。 DrawView
工作正常并创建一个允许我绘制线条的画布。我不知道怎么做的是当我点击我放在动作栏上的按钮时,它会将画布上绘制的任何内容保存为图像。
我不知道如何在我的MainActivity
课程中使用以下代码段。我是否需要使用其中的方法创建一个新类,或者我可以在MainActivity
类中创建该方法(相对于行“//方法在这里”)?我还假设我必须从DrawView
检索画布对象,并将其作为参数传递给方法。如果它在DrawView
对象中,我该怎么做?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
drawView = new DrawView(this);
setContentView(drawView);
drawView.requestFocus();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
switch (item.getItemId()) {
case R.id.action_save:
//method goes here
return true;
default:
return super.onOptionsItemSelected(item);
}
}
答案 0 :(得分:2)
创建一个名为drawView的字段,该字段是私有的,但在整个类中都可以访问,如下所示:
private DrawView drawView;
像你现在一样在onCreate方法中设置它:
drawView = new DrawView(this);
现在您可以在onOptionsItemSelected方法中访问drawView变量。这意味着您可以访问该类中的所有公共变量。如果将绘制路径存储在公共变量中,则可以访问它。您可以通过将canvas作为DrawView类中的公共字段来实现。就像你在MainActivity类中将DrawView作为私有字段一样。
您应该可以像这样访问画布。
在DrawView中创建字段:
public Canvas canvas;
你可以像这样访问它:
drawView.canvas;
答案 1 :(得分:0)
从操作栏按钮调用方法,并在该方法中编写保存代码。如果方法在其他类中,则使用static关键字来调用该方法并将该方法定义为static,或者您可以创建类对象来访问它。