【Android】画像切替えボタン 作成 + 複数画像連続切り替え

EngineeringAndroid, 備忘録, 職業訓練

ImageView image = (ImageView) ~ で image タグ反映

public class MainActivity extends AppCompatActivity {
    boolean isHydrogen;  // 表示している画像が水素か否か

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        isHydrogen = true;
        Button btn=(Button) findViewById(R.id.btnChange);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ImageView image = (ImageView) MainActivity.this.findViewById(R.id.imageView);
                /* 画像に切り替えて、状態変更 */
                if(isHydrogen) {
                    image.setImageResource(R.drawable.helium);
                    isHydrogen = false;
                /* 画像に切り替えて、状態変更 */
                } else {
                    image.setImageResource(R.drawable.hydrogen);
                    isHydrogen = true;
                }
            }
        });
    }
}

 

 

複数画像連続切り替え 順序一定

if 条件分岐による boolean 要素配置で解決。

public class MainActivity extends AppCompatActivity {
    boolean isChopin;  //表示している画像が Chopin か否か
    boolean isBach;
    boolean isMozart;
    boolean isBeethoven;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        isApple=true;
        Button btn=(Button) findViewById(R.id.btnChange);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ImageView image=(ImageView) MainActivity.this.findViewById(R.id.imageView);
                if(isChopin & !isBach & !isMozart & !isBeethoven) {
                    image.setImageResource(R.drawable.bach);
                    isChopin = false;
                    isBach = true;
                } else if (!isChopin & isBach & !isMozart & !isBeethoven){
                    image.setImageResource(R.drawable.mozart);
                    isBach = false;
                    isMozart = true;
                } else if (!isChopin & !isBach & isMozart & !isBeethoven) {
                    image.setImageResource(R.drawable.beethoven);
                    isMozart = false;
                    isBeethoven = true;
                } else {
                    image.setImageResource(R.drawable.chopin);
                    isBeethoven = false;
                    isChopin = true;
                }
            }
        });
    }
}

他に、配列やイテレーターを使ってもいいかもしれないとぼんやりおもう。

→ 模範解答は R.drawable.chopin は整数値だから、switch (currentImage) { case R.drawable.chopin: 等とする。 なるほど。

 

 


 

EngineeringAndroid, 備忘録, 職業訓練

Posted by Qawai