私はstackoverflowに不慣れです!私はAndroidでアプリに取り組んでいますが、特定の時点で行き詰まりました。
4つのボタンとそれに描画されたキャンバスを持つアクティビティ(アクティビティ1)があります。キャンバスはカスタムビュー(ビュー1)で作成され、xmlファイルを介してアクティビティに描画されます。キャンバスをjpgファイルとしてSDカードに保存したい。保存のアクションは、ボタンを押すだけで発生する必要があります。
私がそれを機能させることを意図した方法は次のとおりでした:ボタンをクリックすることにより、ブール値がtrueに設定されます。このブール値は、アクティビティ1からキャンバスが描画されるビュー1に送信する必要があります。このビュー1は、ブール値がtrueまたはfalseに設定されているかどうかを監視します。ブール値が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:これは、キャンバスが描画される、私が作成したカスタムビューです。このコードでは、Acitivty1で作成したブール値の状態を継続的に監視したいと思います。
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) {
....
}
}
私の質問がどういうわけか明確であり、誰かが私を助けてくれるのに十分なコードを提供したことを願っています。追加情報が必要な場合はお知らせください。
乾杯!