こんにちは。
今回は、前回表示してみた画像とボタン操作を組み合わせてみます。
イメージ的には、ボタンを押すと表示してある画面Aが画像Bになり、再度ボタンを押すと
画像Aに戻るような感じで作ってみます✌
↓ ボタンをつけるとこんな感じです。
あと、変更後の画像を追加します。
ここから、javaでの開発になるのですが、activity_main.xmlに記載
している画像とボタンのIDを控えておきましょう。
android:id=”@+id/imageView2″
・・・・
<Button
android:id=”@+id/button1″
・・・・
ここからは、MainActivity.javaを記述してみようと思います。
↓ 出来ているクラス(MainActivity.java)をそのまま開いた状態です。
protected void onCreate(Bundle savedInstanceState) { //②
super.onCreate(savedInstanceState); //③
setContentView(R.layout.activity_main); //④
}
}
①はMainActivityはMainActivity.javaのクラス名で、②のonCreateは
画像処理が起きた際に最初に呼ばれる関数とのことです。
③は、処理の前にスーパークラス(AppCompatActivity)が実行されるのですが、
今回はここはこのままにしておきます。
④は画像クラス(activity_main.xml)を指定しています。
この後に、コードを記述していきましょう😃
↓ まず、画面で作ったボタン(ID=button1)を使います!!と宣言します。
↓ すると、エラーになります。
Buttonクラスをインポートしていないからです。
↓ Buttonにカーソルを当てて、optionキー+enterキーを押すと・・・
↓ 自動で、Buttonクラスをインポートしてくれます✌
同じように画像(ID=imageView2)も宣言します。
次は、ボタンを押された時に実行される処理を記述します。
public void onClick(View view) { //⑥
}
}
⑤先ほど宣言した「button」を使用し、setOnClickListenerを呼びます。
ボタンが押された事を検知する関数です。
⑥ボタン押下後の処理は、このonClick内に書いていきます。
public void onClick(View view) {
if (hantei) {
imageView.setImageResource(R.drawable.imag0209); //⑧
hantei = false;
} else {
imageView.setImageResource(R.drawable.imag0134); //⑨
hantei = true;
}
}
⑦は、判定として置いています。画像Bが設定されたらfalseをセット、画像Aが設定されたら
tureをセットという形で使用します。
⑦の判定をした後、判定がtrueだった場合は、⑧で画像Bをセットしており、判定にfalseをセット
して処理終了。
⑨はその反対の処理をしています。
これで、AVD(エミュレータ)を実行してみると、、、、
↓ 画像とボタンは表示されています😃
そして、ボタンを押してみると、、、、
↓ 画像が切り替わりました。
成功です✌
今日はここまで。
まだまだコードや役割が理解しきれていない気もするので、
機能を記述して動かしながら理解していきます。
では、次回✋
コメント