我是stackoverflow的新手!我一直在 android 中开发一个应用程序,但在特定点上卡住了。
我有一个活动(活动 1),它有四个按钮和一个画布。画布是在自定义视图(视图 1)中创建的,然后通过 xml 文件将其绘制到活动中。我想将画布作为 jpg 文件保存到我的 SD 卡中。保存操作必须在按下按钮时发生。
我打算如何工作如下:通过单击按钮,布尔值设置为 true。这个布尔值必须从活动 1 发送到绘制画布的视图 1。该视图 1 将监视布尔值是否设置为真或假。如果布尔值设置为 true,则会运行一段代码,将画布保存为 jpg。
我的问题在于布尔值的监控。如何在自定义视图(视图 1)中持续监控布尔值的状态?
活动1:所以在这里我有我的主要活动,其中我有一个按钮,单击时将布尔值设置为true。(我将代码剥离到论坛的基本部分)
public class ShowImage extends Activity implements ColorPickerDialog.OnColorChangedListener {
public boolean saveCanvas = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.image);
Button saveButton = (Button)findViewById(R.id.savePic);
saveButton.setOnClickListener(saveListener);
}
private OnClickListener saveListener = new OnClickListener(){
public void onClick(View v) {
saveCanvas = true;
};
视图 1:这是我创建的用于绘制画布的自定义视图。在这段代码中,我想持续监控我刚刚在 Acitivty 1 中创建的布尔值的状态。
public class MyView extends View {
boolean saveCanvas = false;
Context context;
public MyView(Context c, AttributeSet as) {
super(c, as);
....
}
//CONTINUOUSLY MONITOR THE STATE OF THE BOOLEAN
//IF TRUE SAVE PICTURE, ELSE CONTINUE CODE
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
....
}
@Override
protected void onDraw(Canvas canvas) {
....
}
}
我希望我的问题以某种方式清楚,并希望我提供了足够的代码来让有人帮助我。如果需要更多信息,请告诉我。
干杯!