我现在有两个类,MainActivity
和 DrawView
。 DrawView
工作正常并创建了一个允许我画线的 Canvas 。我不知道该怎么做的是,当我单击放置在操作栏上的按钮时,它会将 Canvas 上绘制的任何内容保存为图像。
我不知道如何使用我的 MainActivity
类中的以下代码段。我是否需要创建一个包含方法的新类,或者我可以在 MainActivity
类中创建该方法(相对于“//method goes here”这一行)?我还假设我必须从 DrawView
中检索 Canvas 对象,并将其作为参数传递给该方法。当它位于 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);
}
}
最佳答案
创建一个名为 drawView 的字段,它是私有(private)的但在整个类中都可以访问,如下所示:
private DrawView drawView;
像您现在所做的那样在 onCreate 方法中设置它:
drawView = new DrawView(this);
现在您可以在 onOptionsItemSelected 方法中访问 drawView 变量。这意味着您可以访问该类中的所有公共(public)变量。如果将绘制路径存储在公共(public)变量中,则可以访问它。您可以通过将 Canvas 设为 DrawView 类中的公共(public)字段来实现。就像您在 MainActivity 类中将 DrawView 设置为私有(private)字段一样。
您应该能够像这样访问 Canvas 。
在 DrawView 中创建字段:
public Canvas canvas;
你可以像这样访问它:
drawView.canvas;
关于java - 使用 Android 操作栏上的按钮调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20760676/